抛出了一个意外的异常:java.lang.reflect.InvocationTargetException

时间:2011-02-09 12:50:04

标签: java hibernate gwt jboss

我正在研究GWT-Hibernate应用程序,我的应用程序在集成的GWT环境甚至外部服务器tomcat上运行良好。我需要在JBoss V 6.0上部署我的应用程序。我能够在JBoss上成功部署我的应用程序,并能够运行直到执行点。在特定的按钮单击应用程序中引发了意外的异常:java.lang.reflect.InvocationTargetException

通常,当java编译器在2个不同的包中找到2个具有相同名称的不同类时,会发生“java.lang.reflect.InvocationTargetException”。当您一次导入两个类时,当您尝试创建该类的对象时,它会抛出“java.lang.reflect.InvocationTargetException”异常。

现在我无法弄清楚编译器在哪里找到我的两个不同的类!有没有任何方法可以让我知道它找到两条不同路径的确切位置(即物理路径),这样我就可以删除坏路径。

任何帮助都将不胜感激。

感谢你,

此致

编辑:

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/myProj]] (http-127.0.0.1-8080-4) Exception while dispatching incoming RPC call: com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public com.proj.client.beans.domain.common.transaction.Document com.proj.server.actions.configuration.DocumentAction.saveDocument(com.proj.client.beans.domain.common.transaction.Document,java.lang.Long)' threw an unexpected exception: java.lang.reflect.InvocationTargetException
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378) [:]
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361) [:]
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:329) [:]
    at com.googlcode.strut2gwtplugin.interceptor.GWTServlet.processCall(GWTServlet.java:138) [:]
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224) [:]
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) [:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [:1.0.0.Final]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
    at com.googlcode.strut2gwtplugin.interceptor.GWTInterceptor.intercept(GWTInterceptor.java:49) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) [:]
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) [:]
    at com.proj.server.LoginInterceptor.intercept(LoginInterceptor.java:37) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) [:]
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) [:]
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) [:]
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) [:]
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504) [:]
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422) [:]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
    at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23]
    at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]
    at com.googlcode.strut2gwtplugin.interceptor.GWTServlet.processCall(GWTServlet.java:127) [:]
    ... 36 more
Caused by: java.lang.NullPointerException
    at com.proj.server.actions.configuration.DocumentAction.saveDocument(DocumentAction.java:161) [:]
    ... 41 more

4 个答案:

答案 0 :(得分:2)

InvocationTargetException不会以任何方式自动暗示两个不同的类在两个不同的包中具有相同的名称(实际上,我很难想象这种情况如何导致该异常)。 / p>

InvocationTargetException只是通过反射调用的方法自行抛出异常时的结果。

您是否可以访问堆栈跟踪?它应该打印反射调用的位置(靠近顶部)和调用代码抛出的实际异常(靠近底部)。

答案 1 :(得分:1)

尝试在jboss-5.0.0.GA

上部署代码

希望有所帮助

答案 2 :(得分:0)

堆栈跟踪的最后一位看起来与此相关:

Caused by: java.lang.NullPointerException
at com.proj.server.actions.configuration.DocumentAction.saveDocument(DocumentAction.java:161)

当您涉及多个ClassLoader时,您所描述的例外通常会显示为IncompatibleClassChangeError或更奇怪地显示为Foo.class != Foo.class

答案 3 :(得分:0)

正如@Joachim的回答所说,当使用InvocationTargetException调用的方法抛出已检查的异常时,抛出Method.invoke(...)。实际的异常包含在InvocationTargetException中,然后抛出。

在这种特殊情况下,堆栈跟踪告诉我们原始异常是在“DocumentAction.java:161”处抛出的NullPointerException。追踪并修复该异常的原因。


我没有看到任何证据表明这与某些类的不同版本有任何关系。我首先将它视为正常的NPE,并试图找出null的来源。