Перехватите запрос на неправильный тип тела и зарегистрируйте тело запроса перед созданием исключения

#spring-boot #exception #interceptor #spring-restcontroller

Вопрос:

У меня есть RestController с парой функций сопоставления, которые ожидают пользовательское @RequestBody. Если сопоставление тела запроса не соответствует типу POJO тела запроса, контроллер перейдет к обработчику исключений. Но я хочу зарегистрировать детали запроса, который не соответствует ожидаемому POJO. Как я могу это сделать? Я пробовал использовать ResponseEntityExceptionHandler (расширено в ExceptionHandler), но это, похоже, не работает.

 protected ResponseEntity<Object> handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
        log.error("Invalid request body: "   request.toString());            
        CustomResponse response = new CustomResponse();
        .............
        response.setException(ex);
        return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
    }
 

Есть какие-нибудь предложения о том, как я могу это сделать?