Глобальный обработчик исключений в Struts 2 - PullRequest
1 голос
/ 21 апреля 2011

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

1 Ответ

1 голос
/ 21 апреля 2011

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

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

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