2011-04-20 3 views
1

У меня есть гибридное приложение 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.

ответ

1

Вы действительно уверены, что ваш myErrorAction (или ваш error.jsp) не выбрасывает исключение? Это объясняет бесконечный цикл.

Следует позаботиться о том, чтобы ресурсы, которые обрабатывали исключения, были абсолютно уверены в этом отношении.

+0

Это текущий код для myErrorAction: public String execute() {return "error"; } Может быть, я должен добавить некоторые заявления о печати ..... – David

+0

Я добавил заявления печати, и они печатались успешно. Однако продолжался бесконечный цикл. – David

+0

В ходе дальнейших исследований я попытался использовать одно и то же действие для обработки исключений struts 1 и struts 2. Проблема заключалась в том, что мой обработчик Struts 1 расширяет Struts 1 exceptionHandler вместо класса действия Struts 2. Это вызывало рекурсивные циклы исключений. – David

Смежные вопросы