Struts 2 - Действие уже выполнено, исключение - PullRequest
2 голосов
/ 10 октября 2011

Иногда это исключение выдается в моем приложении "стойка 2".Не могу скопировать его, когда я хочу, он просто появляется случайно.

Struts has detected an unhandled exception:
Messages:   
Action has already executed
File:   com/opensymphony/xwork2/DefaultActionInvocation.java
Line number:    240

Stacktraces
java.lang.IllegalStateException: Action has already executed

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
xxx.yyy.zzz.qqq.ddd.interceptors.AuthInterceptor.invoke(AuthInterceptor.java:68)
xxx.yyy.zzz.qqq.ddd.interceptors.AuthCCareInterceptor.checkAuthenticateInvoke(AuthCCareInterceptor.java:142)
xxx.yyy.zzz.qqq.ddd.interceptors.AuthInterceptor.intercept(AuthInterceptor.java:59)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)

Извините за «xxx.yyy.zzz.qqq.ddd», но это конфиденциальная информацияЯ уверен, что вы понимаете!

Спасибо: -)

Ответы [ 2 ]

5 голосов
/ 14 ноября 2011

Проблема в том, что мы сохраняли переменные в перехватчике, например, вызванный экземпляр действия. После рефакторинга все стало работать нормально!

Перехватчики должны быть поточно-ориентированными (как сервлеты).

3 голосов
/ 10 октября 2011

Один из этих трех перехватчиков, вероятно, сломан:

interceptors.AuthInterceptor.invoke(AuthInterceptor.java:68)
interceptors.AuthCCareInterceptor.checkAuthenticateInvoke(AuthCCareInterceptor.java:142)
interceptors.AuthInterceptor.intercept(AuthInterceptor.java:59)

Очевидно, что не могу сказать вам намного больше с предоставленной информацией.

...