У меня есть контроллер с почтовым запросом.Я пытаюсь проверить POJO с помощью простой аннотации NotNull.Я использую ControllerAdvice для обработки исключений.
@PostMapping("/something")
public MyResponse post(@Valid MyRequest request) {
// nevermind...
}
public class MyRequest {
@NotNull
private Integer something;
// Getters setters nevermind...
}
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = BindException.class)
protected ResponseEntity<Object> handleBindException(RuntimeException ex, WebRequest request) {
return handleExceptionInternal(...);
}
}
Так что я пытаюсь использовать это, но когда я запускаю приложение, я получил следующее:
org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerExceptionResolver]: Factory method 'handlerExceptionResolver' threw exception; nested exception is java.lang.IllegalStateException: Ambiguous @ExceptionHandler method mapped for [class org.springframework.validation.BindException]: {protected org.springframework.http.ResponseEntity com.liligo.sponsoredads.controller.RestResponseEntityExceptionHandler.handleBindException(java.lang.Exception,org.springframework.web.context.request.WebRequest), public final org.springframework.http.ResponseEntity org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler.handleException(java.lang.Exception,org.springframework.web.context.request.WebRequest) throws java.lang.Exception}
Итак, я хотел бы создать свойсобственный обработчик для BindExceptions, но когда я создаю ExceptionHandler для класса BindException, весеннее приложение не запускается.Если я закомментирую метод handleBindException, приложение запускается, и если возникает BindException, оно просто возвращает 400 и выдает ошибку, но ничего не отправляется обратно в качестве тела ответа.
Что может быть решением для созданияпользовательский обработчик для BindExceptions?