Я новичок в Spring REST и выполнял обработку исключений в Spring REST. Ниже приведен код контроллера, который выдает пользовательское исключение
@RequestMapping(value = "/getAllCountries", method = RequestMethod.GET, headers = "Accept=application/json")
public Country getCountries() throws CountryNotFoundException{
throw new CountryNotFoundException();
//List<Country> listOfCountries = countryService.getAllCountries();
// return listOfCountries;
}
@ExceptionHandler(CountryNotFoundException.class)
public ResponseEntity<ErrorMessage> handleException(HttpServletRequest req, Exception e)
{
ErrorMessage error = new ErrorMessage("Custom handler message "+e.toString(), req.getRequestURI());
return new ResponseEntity<ErrorMessage>(error,HttpStatus.NOT_FOUND);
}
Несмотря на это, обработчик не выполняется, и я получаю следующее исключение:
HTTP Status 500 - Request processing failed; nested exception is
org.arpit.java2blog.exception.CountryNotFoundException
Может кто-нибудь сообщить мне, пожалуйста, есть ли какие-либо другие конфигурации, которые нужно позаботиться для выполнения обработчиком?
РЕДАКТИРОВАТЬ: Когда я изменяю параметр ResponseEntity на String, он работает, но не с ErrorMessage. Почему происходит такое поведение?