リクエストパラメーターからの電子メール属性が適切な形式であるかどうかを検証するために、スプリングコントローラーの1つにカスタム例外ハンドラークラスを作成しました。そのため、クラスを拡張する新しいクラスを作成しResponseEntityExceptionHandler
、 でメソッドを記述しました@ExceptionHandler
。
しかし、春の起動アプリケーションの起動中に、プロジェクトの実行を停止している例外を下回っています。誰かがこれを解決するのを手伝ってくれますか?
サーバー起動時の例外:
org.springframework.beans.factory.BeanCreationException: クラスパス リソース [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class] で定義された名前 'handlerExceptionResolver' を持つ Bean の作成中にエラーが発生しました: ファクトリ メソッドによる Bean のインスタンス化に失敗しました。
ネストされた例外は org.springframework.beans.BeanInstantiationException: インスタンス化に失敗しました [org.springframework.web.servlet.HandlerExceptionResolver]: ファクトリ メソッド 'handlerExceptionResolver' が例外をスローしました。
ネストされた例外は java.lang.IllegalStateException: Ambiguous @ExceptionHandler method mapping for [class org.springframework.web.bind.MethodArgumentNotValidException]: {public com.TestVO com.handler.exception.TestExceptionHandler.methodArgumentNotValidException(org.springframework.web.bind) .MethodArgumentNotValidException)、public final org.springframework.http.ResponseEntity org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler.handleException(java.lang.Exception,org.springframework.web.context.request.WebRequest) スローjava.lang.Exception}
処理するカスタム クラスMethodArgumentNotValidException
:
@ControllerAdvice
public class ExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorVO processValidationError(MethodArgumentNotValidException ex) {
BindingResult result = ex.getBindingResult();
List<FieldError> fieldErrors = result.getFieldErrors();
FieldError fieldError = fieldErrors.get(0);
ErrorVO dto = new ErrorVO(fieldError.getDefaultMessage());
return dto;
}
}