2011-02-09 60 views
1

我正在研究GWT-Hibernate應用程序,我的應用程序完美適用於集成GWT環境,甚至在外部服務器tomcat上工作。我需要在JBoss V 6.0上部署我的應用程序。我能夠在JBoss上成功部署我的應用程序,並能夠運行,直到執行時。在特定的按鈕點擊應用程序中拋出一個意外的異常:java.lang.reflect.InvocationTargetException引發了一個意外的異常: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 
+1

u能提供完整的堆棧跟蹤代碼部署? – DaTroop 2011-02-09 12:55:33

+0

java.lang.reflect.InvocationTargetException是一個泛型異常,可能有很多原因。請發佈一個完整的堆棧跟蹤,沒有它,它不可能我們能夠提供幫助。 – sleske 2011-02-09 12:55:48

+0

你可以發佈堆棧跟蹤嗎?跟蹤中通常有一個根本原因。 – 2011-02-09 12:57:04

回答

1

嘗試在jboss-5.0.0.GA

希望它可以幫助

2

InvocationTargetException不以任何方式自動意味着兩種不同的封裝兩個不同的類具有相同的名稱(事實上,我很難想象這種情況會如何導致這種例外)。

InvocationTargetException只是通過反射調用的方法自身拋出異常時的結果。

您是否有權訪問堆棧跟蹤?它應該打印反射調用的位置(靠近頂部)和被調用的代碼拋出的實際異常(靠近底部)。

0

堆棧跟蹤的最後一位看起來與此有關:

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

,你通常描述的異常表現爲IncompatibleClassChangeError或更奇怪的是Foo.class != Foo.class當多個類加載器都有涉及。

0

As @ Joachim的回答說,當使用Method.invoke(...)調用的方法拋出一個檢查的異常時,拋出InvocationTargetException。實際的異常被包裹在InvocationTargetException中,然後拋出。

在這種特殊情況下,堆棧跟蹤告訴我們原始異常是在「DocumentAction.java:161」處拋出的NullPointerException。追蹤並修復該異常的原因。


我沒有看到任何證據表明這與某些類的不同版本有關。我將它視爲正常的NPE開始,並嘗試確定null是從哪裏來的。

相關問題