У меня есть Struts 2, настроенный на перенаправление любого java.lang.Exception на специальное действие, которое регистрирует исключение. Мое перенаправление работает, но мое действие всегда получает нулевое исключение (даже когда я явно бросаю исключение). Вот мой файл struts.xml:
<global-results>
<result name="errHandler" type="chain">
<param name="actionName">errorProcessor</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="errHandler" />
</global-exception-mappings>
<action name="errorProcessor" class="myErrorProcessor">
<result name="error">/error.jsp</result>
</action>
<action name="throwExceptions" class="throwExceptions">
<result name="success">done.jsp</result>
</action>
В моем процессоре ошибок у меня есть следующее:
public class myErrorProcessor extends ActionSupport {
private Exception exception;
public String execute() {
System.out.println("null check: " + (exception == null));
return "error";
}
public void setException(Exception exception) {
this.exception = exception;
}
public Exception getException() {
return exception;
}
}
В классе throwsException у меня есть следующее:
public String execute() {
int x = 7 / 0;
return "success";
}
Когда я запускаю свою программу, обработчик Exception всегда получает нулевое исключение. Я использую тип цепочки для перенаправления на обработчик исключений. Нужно ли мне реализовать какой-то интерфейс ExceptionAware? Является ли установщик исключения Struts 2 чем-то помимо setException?
Примечание. Я пытаюсь выполнить этот учебник при написании этой программы.