Я хочу настроить ответ, когда вызывающий абонент использует неправильный метод 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);
}
Как его перехватить и переопределить?