@axtavt: так что Spring использует этот FactoryBean, когда ему нужно исключение Resolver, верно ?! нам не нужно вызывать getObject () вручную в аннотированном методе @ExceptionHandler, верно?

акой:

   @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;
    }

}

когда я пытался завить -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? Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос