код такой:
@Controller
public class TestController {
@RequestMapping(value = "/testerror", method = RequestMethod.GET)
public @ResponseBody ErrorTO testerror(HttpServletRequest request,HttpServletResponse response) {
throw new ABCException("serious error!");
}
@ExceptionHandler(ABCException.class)
public @ResponseBody ErrorTO handleException(ABCException ex,
HttpServletRequest request, HttpServletResponse response) {
response.setStatus(response.SC_BAD_REQUEST);
return new ErrorTO(ex.getMessage());
}
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody ErrorTO test(HttpServletRequest request,
HttpServletResponse response) {
ErrorTO error = new ErrorTO();
error.setCode(-12345);
error.setMessage("this is a test error.");
return error;
}
}
когда я попробовал curl -H "Принять: application / json" -v "http://localhost.com:8080/testerror"
Я получил эту ошибку:
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - Не удалось найти HttpMessageConverter, поддерживающий тип возвращаемого значения [класс com.kibboko.poprocks.appservices.dtos.ErrorTO] и [application / json]
но если я попробую curl -H "Accept: application / json" -v "http://localhost.com:8080/test", сработало и вернуло ответ json." Application / xml "тоже сработало.
Есть ли что-то особенное в обработчике исключений, о котором мне нужно позаботиться, чтобы он мог работать с json или xml? Спасибо!