Я просматриваю Java учебник Spring Boot и пытаюсь обработать исключения 404. У меня есть точный код, как в учебнике, но он по какой-то причине не работает, хотя ошибка 403 работает. В этом руководстве инструктор обрабатывает все невыполненные исключения следующим образом, в частности defaultErrorHandler (). Однако это не работает:
@ControllerAdvice
public class GlobalExceptionHandler {
@Value("${message.error.exception}")
private String exceptionMessage;
@Value("${message.error.duplicate.user}")
private String duplicateUserMessage;
@ExceptionHandler(value=Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.getModel().put("message", exceptionMessage);
modelAndView.getModel().put("url", req.getRequestURL());
modelAndView.getModel().put("exception", e);
modelAndView.setViewName("app.exception");
return modelAndView;
}
@ExceptionHandler(value=DataIntegrityViolationException.class)
public ModelAndView duplicateUserHandler(HttpServletRequest req, Exception e) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.getModel().put("message", duplicateUserMessage);
modelAndView.getModel().put("url", req.getRequestURL());
modelAndView.getModel().put("exception", e);
modelAndView.setViewName("app.exception");
return modelAndView;
}
}
Затем я попытался добавить что-то похожее на то, что есть у инструктора для обработки ошибок 403, найденное ниже, но это тоже не работает:
@RequestMapping("/403")
ModelAndView accessDenied(ModelAndView modelAndView) {
System.out.println("We're here");
modelAndView.getModel().put("message", accessDeniedMessage);
modelAndView.setViewName("app.message");
return modelAndView;
}
@RequestMapping("/404")
ModelAndView pageNotFound(ModelAndView modelAndView) {
modelAndView.getModel().put("message", exceptionMessage);
modelAndView.setViewName("app.message");
return modelAndView;
}
Я попытался выполнить отладку, поместив System.out.println ("test") в каждый из подозрительных методов, но ни один из них не был реализован. Любая помощь будет оценена. Спасибо!