Spring ExceptionHandler для метода запроса 'POST' не поддерживается - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу настроить ответ, когда вызывающий абонент использует неправильный метод HTTP.

@RequestMapping(value = "/simulator/table/{id}/action", method = RequestMethod.PUT)
public GenericResponse doSomething(HttpServletRequest servletRequest, @PathVariable("id") String id, @RequestBody MyRequest request)
        throws BadRequestException, AuthorizationFailedException {
    return response;
}

Я могу перехватить много состояний ошибок, таких как некорректный ввод JSON

@ExceptionHandler({HttpMessageNotReadableException.class})
public ResponseEntity resolveException(HttpServletRequest request, HttpMessageNotReadableException e) {
    log.error("Error when parsing the request {}\n{}", request.getRequestURI(), "a", e);
    GenericResponse response = new GenericResponse("FAILED", error);
    return new ResponseEntity<Object>(response, new HttpHeaders(), HttpStatus.BAD_REQUEST);
}

Теперь я хочуперехватить, когда клиент использует POST вместо PUT

Этот универсальный перехватчик не работает:

@ExceptionHandler
public ResponseEntity resolveException(HttpServletRequest request, Exception e) {
    log.error("Error when parsing the request {}\n{}", request.getRequestURI(), "a", e);
    GenericResponse response = new GenericResponse("FAILED", error);
    return new ResponseEntity<Object>(response, new HttpHeaders(), HttpStatus.BAD_REQUEST);
}

Как его перехватить и переопределить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...