У меня есть приложение Spring 3.2, и я создал REST API на основе Spring MVC. Я использую аннотацию @ControllerAdvice для обработки пользовательских исключений. Например:Обработка пользовательских исключений Spring REST API
@ControllerAdvice
public class RestResponseEntityExceptionHandler {
@ExceptionHandler(MyCustomException.class)
@ResponseStatus(HttpStatus.CONFLICT)
@ResponseBody
public ExceptionMessage handleMyCustomException(MyCustomException ex){
return new ExceptionMessage(ex.getClass().getName(), ex.getMessage(), ex.getExceptionCode());
}
}
Вопрос заключается в том, что я вижу, как мой заказ исключение, но метод обработчика исключений фактически не выполняется, и, следовательно, мое сообщение об исключении не возвращается клиенту. Вместо этого я заметил в журналах, как DefaultHandlerExceptionResolver обрабатывает исключение (с использованием генератора Spring, ServletRequestBindingException
в методе GET). Как я могу избавиться от этой проблемы?
Спасибо!
Является ли пакет «RestResponseEntityExceptionHandler» указанным в атрибуте «базовый пакет компонента»? – zeroflagL
@zeroflagL Да, это – jarandaf
Подождите, 'ServletRequestBindingException'? Похоже, что ваше исключение выбрасывается до вызова метода обработчика. – zeroflagL