У меня есть гибридное приложение Struts 1 и Struts 2. Приложение My Struts 1 имеет следующий обработчик исключений:
<global-exceptions>
<exception type="java.lang.Exception" handler="myClass" />
</global-exceptions>
<global-forwards>
<forward name="error" path="/error.jsp" module="/" />
</global-forwards>
Я пытаюсь выполнить аналогичное сопоставление в моей части Struts 2 приложения. Вот что у меня сейчас:
<global-results>
<result name="myErrorHandler" type="redirectAction">
<param name="actionName">myErrorAction</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="myErrorHandler" />
</global-exception-mappings>
<action name="myErrorAction" class="myErrorAction">
<result name="error">/error.jsp</result>
</action>
Однако всякий раз, когда я тестирую свой обработчик ошибок, я получаю бесконечный цикл (myErrorAction продолжает вызывать сам себя). Есть ли лучший способ настроить глобальный обработчик исключений в Struts 2? Мое действие имеет пользовательский код, который создает специальные записи журнала и создает сообщение об ошибке для отображения пользователю на странице jsp.