Я работаю над Spring MVC/Webflow Application (версия 3.2) и пытаюсь обработать обработку исключений, где я могу вывести собственное сообщение об исключении в файл журнала и error.jsp. Проблема, с которой я сталкиваюсь, заключается в том, что обработчик исключений не запускается. Я создал следующий класс и аннотированный его «@ControllerAdvice
» и поместите его в тот же пакет, как мой контроллер, который бросает исключение:@ControllerAdvice Not Firing
@ControllerAdvice
public class MyCustomExceptionController {
@ExceptionHandler(MyCustomException.class)
public ModelAndView handleMyException(MyCustomException ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/error/error");
modelAndView.addObject("errorId", ex.getErrorId());
modelAndView.addObject("message", ex.getErrorMessage());
return modelAndView;
}
}
и добавил следующее в MVC-конфигурационный файл:
<mvc:annotation-driven/>
И включали следующее в моем приложение-конфигурационный файл:
<context:component-scan base-package="package containing my controllers and MyCustomExceptionController">
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan>
Любые идеи, почему это не работает?
Метод 'handleMyException()' будет вызываться только при возникновении необработанного пользовательского исключения по вашему выбору ('MyCustomException'). Этот метод ** не вызывается ** даже после того, как вызывается «MyCustomException»? [Это] (http://viralpatel.net/blogs/spring-mvc-exception-handling-controlleradvice-annotation/) - это учебник, с которым вы можете приблизиться. – Tiny
Я поставил точку останова на handleMyException, и метод никогда не вызывается даже после того, как я бросаю MyCustomException. – user676567
Если вы должны были аннотировать метод по вашему выбору с помощью аннотации '@ InitBinder' в этом классе, как пример, был вызван этот метод? – Tiny