java.lang.reflect.InvocationTargetException

问题描述

java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.adr.common.struts.BaseAction.execute(BaseAction.java:84)at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at com.adr.common.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:62)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)at java.lang.Thread.run(Thread.java:595)这个异常怎么解决??? 问题补充:那这代码要写在什么地方? 请指教!蔡华江 写道

解决方案

再思考下,我提出的方法也是无用的。因为在父类中实在无法知道子类的类型,以及其有些什么方法。你可能需要用到泛型。
解决方案二:
不明白楼主为什么使用反射调用,还有就是在action里那么多的getParameter方法调用看着挺乱的,为啥不整一个form呢。
解决方案三:
引用求详情,,,过程!其实我想我解释清楚了。上面相当于这样class baseAction(){ execute(){ this.dosth(); }}class standardaction(){ execute(){ super.execute(); } dosth(){ }}这是一个典型的继承与多态的实例。但是父类中的方法明显是错的,要将this.dosth()改为dosth()才能正常运行。但是,由于你是使用的反射,那么在参数中必定要传入一个对象,而这个对象原生是支持dosth方法的。我有个办法,只是不知道有没有更好的。将以上逻辑改为:class baseaction(){ obj; execute(){ obj.dosth(); }}class standardaction(){ standardaction(){ obj = this; } exeute(){ super.execute(); } dosth(){ }}这是就将你需要反射的对象给传给了父类,就是在父类中总能找到当前实体。。
解决方案四:
forward = (ActionForward) met.invoke(this, args)这里的this是指baseaction类,虽然其instance为继承baseaction的具体action。但是明显,这个this中是不存在扩展的那些方法的。如果this能够提供一个具体的对象,应当可以解决这个错误
解决方案五:
try {Class objClass = this.getClass();Class types[] = { ActionMapping.class, ActionForm.class,HttpServletRequest.class, HttpServletResponse.class };Object args[] = { mapping, form, request, response };met = objClass.getMethod(method, types);forward = (ActionForward) met.invoke(this, args);return forward;} catch (Exception e) {if (response.isCommitted()) {return null;} else {forward = mapping.findForward("error");request.setAttribute("exception", e);e.printStackTrace();return forward;}}我还是坚持错误是出现在这里的:forward = (ActionForward) met.invoke(this, args);但是从语法上来讲,个人感觉没多大问题
解决方案六:
不明白你为什么要通过反射调用呢,你现在的action都是交给spring来管理的啊。action的调用是有spring去做的啊。
解决方案七:
反射出错么一般是配置文件有问题,可能是配置的action中哪里写错了
解决方案八:
光看这个很难发现问题的,把你的web.xml struts-config applicationContext.xml以及相关的代码拿出来才好发现问题
解决方案九:
at com.adr.common.struts.BaseAction.execute(BaseAction.java:84) 这里呀,,
解决方案十:
catch异常,try{}catch(e){ System.out.println(e.getTargetException());}getTargetException里有异常详细信息

时间: 2024-10-05 06:15:35

java.lang.reflect.InvocationTargetException的相关文章

异常:java.lang.reflect.InvocationTargetException

java.lang.reflect.InvocationTargetException sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce

从jsp中调用Applet,出现java.lang.reflect.InvocationTargetException异常

问题描述 项目中通过jsp访问硬件,使用Applet访问硬件com串口,但是,从jsp中访问applet中的方法时,提示java.lang.reflect.InvocationTargetException错误,此方法中包括了访问硬件com串口的类.另外,单独作为一个application运行这样applet,是正常的. 解决方案 解决方案二:LZ把堆栈最好都贴出来,如果可以还有报错代码段.解决方案三:是不是你引入了其他的Jar包,但是这个Applet找不到这个Jar包导致的这种包冲突最难搞了

异常-java.lang.reflect.InvocationTargetException

问题描述 java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException 这个异常一般是什么错误 解决方案 问题解决了.少了一个文件,.获取这个文件的时候找不到报错 解决方案二: java.lang.reflect.InvocationTargetException sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

异常-求高手解惑java.lang.reflect.InvocationTargetException

问题描述 求高手解惑java.lang.reflect.InvocationTargetException 2015-06-24 09:23:35,527 ERROR [STDERR] java.lang.reflect.InvocationTargetException 2015-06-24 09:23:35,531 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2015-06-24

打印-JS报错java.lang.reflect.InvocationTargetException

问题描述 JS报错java.lang.reflect.InvocationTargetException web项目打印时,JS报错 解决方案 这个一般都不是异常的问题,你看看控制台输出的是什么错误,你有这一条解决不了什么的 解决方案二: 方法没定义或方法名写错了,引起框架的反射错误 解决方案三: 应该把js报的具体错误弄出来看看

axis1.4 调用报错:faultString: java.lang.reflect.InvocationTargetException

问题描述 本来在本地我开两个项目访问是没问题的,然后我把服务端发布在客户的服务器上,在本地写测试代码调用接口时就报错了,望大神指点迷津,我弄了一天了,都快疯了..错误如下:AxisFaultfaultCode:{http://schemas.xmlsoap.org/soap/envelope/}Server.userExceptionfaultSubcode:faultString:java.lang.reflect.InvocationTargetExceptionfaultActor:fau

报错:java.lang.reflect.InvocationTargetException

问题描述 type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.reflect.InvocationTargetExceptionsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)su

xmlbeans-java.lang.reflect.InvocationTargetException?

问题描述 java.lang.reflect.InvocationTargetException? ssh项目用 poi导入Excel时报 java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject java.lang.ClassNotFoundExcepti

javaweb-java.lang.reflect.InvocationTargetException

问题描述 java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException;这个问题的产生原因,该怎么解决这个问题