2011-02-09 17 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"例外がスローされます。

コンパイラが私の2つの異なるクラスを見つける場所を特定できません!利用可能な方法があるので、2つの異なるパスを見つける正確な場所(つまり物理パス)を知ることができ、悪いものを削除できるようになります。

ご協力いただければ幸いです。あなたに感謝

よろしく、

EDIT:

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

を役に立てば幸い? – DaTroop

+0

java.lang.reflect.InvocationTargetExceptionは汎用的な例外であり、多くの原因が考えられます。完全なスタックトレースを投稿してください。そうすることなく、私たちが手伝ってくれる可能性は低いです。 – sleske

+0

スタックトレースを転記できますか?通常、トレースには根本的な原因があります。 –

答えて

1

jboss-5.0.0.GA

上でコードを展開しようとするが、それはuがフルスタックトレースを提供することができます

2

InvocationTargetExceptionどのような方法で自動的実際には(二つの異なるパッケージで同じ名前を持つ2つの異なるクラスを意味するものではありません、私はその状況がどのようにその例外につながる可能性があるか想像するのは難しいです)。

InvocationTargetExceptionは、リフレクションによって呼び出されたメソッドが単独で例外をスローするときの結果です。

スタックトレースにアクセスできますか?リフレクションコールの位置(上端付近)と呼び出されたコードによってスローされた実際の例外(下端付近)の両方を出力する必要があります。

+0

私はstacktraceを含んでいます。助けてください、 –

+0

私はあなたの質問に既にコメントしました、そこを参照してください。 –

0

スタックトレースの最後のビットはここでは関係になります。

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

あなたが記述している例外は、通常、複数のクラスローダが関与しているFoo.class != Foo.classとしてIncompatibleClassChangeErrorあるいはそれ以上の妙として現れます。

+0

私は同意します!...私のコードDocumentAction.saveDocument(DocumentAction.java:161)は、boolean型の列activity_schedule_statusを持つActivityScheduleクラスを参照しています。これをactivityScheduleStatusにリネームしましたが、それでも古いものを参照して、 java.sql.SQLException:無効な列名 'activity_schedule_status'が使用できません。 –

+0

ビルド環境の病気のような音。完全にきれいなチェックアウトとビルドは同じ問題を示していますか?あなたは、[Instrumentation](http://download.oracle.com/javase/6/docs/api/java/lang/instrument/Instrumentation.html)実装を登録することができます。この実装では、[ClassFileTransformer](http: /download.oracle.com/javase/6/docs/api/java/lang/instrument/ClassFileTransformer.html)。使用しているClassLoaderをURLClassLoaderにキャストして、getURLs()メソッドを調べます。 – BobV

0

@@ Joachimの答えは、Method.invoke(...)を使用して呼び出されたメソッドがチェック例外をスローすると、InvocationTargetExceptionがスローされます。実際の例外はInvocationTargetExceptionにラップされ、スローされます。

この特別な場合、stacktraceは元の例外が "DocumentAction.java:161"でスローされたNullPointerExceptionであったことを示しています。その例外の原因を追跡して修正します。


これは、いくつかのクラスの異なるバージョンとは関係がないという証拠はありません。私はこれを通常のNPEとして扱い、nullがどこから来ているのか把握しようとします。

+0

驚くべきことに、このコードはGWT開発モードやTomcatでもうまくいきます!...私はこのアプリケーションをJBossにデプロイしました。そこにはこの問題に直面しています.... –

関連する問題