выдал неожиданное исключение: java.lang.reflect.InvocationTargetException - PullRequest
1 голос
/ 09 февраля 2011

Я работаю над приложением GWT-Hibernate, мое приложение отлично работает в интегрированной среде GWT и даже на tomcat внешнего сервера.Мне нужно развернуть мое приложение на JBoss V 6.0.Я могу успешно развернуть свое приложение на JBoss и работать до момента его выполнения.При конкретном нажатии кнопки приложение вызывало неожиданное исключение: java.lang.reflect.InvocationTargetException

Обычно «java.lang.reflect.InvocationTargetException» возникает, когда компилятор java находит 2 разных класса с одинаковым именем в 2 разных пакетах.когда вы импортируете оба класса одновременно и когда вы пытаетесь создать объект этого класса, выдается исключение "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 ]

2 голосов
/ 09 февраля 2011

InvocationTargetException никоим образом не подразумевает автоматически два разных класса с одинаковыми именами в двух разных пакетах (на самом деле, мне трудно представить, как эта ситуация может привести к этомуисключение).

InvocationTargetException - это просто результат, когда метод, вызванный с помощью отражения, генерирует исключение самостоятельно.

У вас есть доступ к трассировке стека?Он должен печатать как местоположение вызова отражения (около верха), так и фактическое исключение, выданное вызванным кодом (около низа).

1 голос
/ 28 марта 2011

Попробуйте развернуть код на jboss-5.0.0.GA

Надеюсь, это поможет

0 голосов
/ 09 февраля 2011

Как говорится в ответе @ Joachim, InvocationTargetException генерируется, когда метод, вызываемый с использованием Method.invoke(...), генерирует проверенное исключение. Фактическое исключение заключено в InvocationTargetException, который затем выбрасывается.

В этом конкретном случае, трассировка стека говорит нам, что исходное исключение было NullPointerException, брошенное в «DocumentAction.java:161». Найдите и устраните причину этого исключения.


Я не вижу никаких доказательств того, что это имеет какое-либо отношение к различным версиям некоторого класса. Для начала я бы отнесся к нему как к обычному NPE и попытался выяснить, откуда исходит null.

0 голосов
/ 09 февраля 2011

Последний бит трассировки стека выглядит здесь уместно:

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

Исключение, которое вы описываете, обычно проявляется как IncompatibleClassChangeError или даже более странно как Foo.class != Foo.class, когда задействовано несколько ClassLoaders.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...