我正在开发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
5条答案
按热度按时间watbbzwu1#
InvocationTargetException
不会以任何方式自动暗示两个不同包中具有相同名称的两个不同类(事实上,我很难想象这种情况会导致这种异常)。InvocationTargetException
只是通过反射调用的方法自己引发异常的结果。你可以访问堆栈跟踪吗?它应该打印反射调用的位置(靠近顶部)和被调用代码抛出的实际异常(靠近底部)。
vnjpjtjt2#
尝试在
jboss-5.0.0.GA
上部署代码希望能有所帮助
yyyllmsg3#
堆栈跟踪的最后一位看起来与此相关:
您所描述的异常通常表现为
IncompatibleClassChangeError
,或者更奇怪的是,当涉及多个ClassLoader时表现为Foo.class != Foo.class
。jjjwad0x4#
正如@Joachim的回答所说,当使用
Method.invoke(...)
调用的方法抛出一个检查异常时,就会抛出InvocationTargetException
,实际的异常被 Package 在一个InvocationTargetException
中,然后抛出。在这个特定的例子中,stacktrace告诉我们最初的异常是在“DocumentAction.java:161”抛出的
NullPointerException
。我没有看到任何证据表明这与某个类的不同版本有关,我会将其作为一个普通的NPE开始,并试图找出
null
的来源。js4nwp545#
我从插件中删除了Bundle-Activator,它解决了问题。
束激活器:开发。演示。开发编辑器插件$实现