У меня есть гибридное приложение Struts 1 и Struts 2. Мой Struts 1 приложение имеет следующий обработчик исключений:Глобальный обработчик исключений в Struts 2
<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.
Это текущий код для myErrorAction: public String execute() {return "error"; } Может быть, я должен добавить некоторые заявления о печати ..... – David
Я добавил заявления печати, и они печатались успешно. Однако продолжался бесконечный цикл. – David
В ходе дальнейших исследований я попытался использовать одно и то же действие для обработки исключений struts 1 и struts 2. Проблема заключалась в том, что мой обработчик Struts 1 расширяет Struts 1 exceptionHandler вместо класса действия Struts 2. Это вызывало рекурсивные циклы исключений. – David