사용자를 확인하고 생성하는 API가 있습니다. 요청 본문에 이메일을 입력하지 않으면 받는
{
"timestamp": "2020-11-26T13:55:40.116+00:00",
"status": 400,
"error": "Bad Request",
"message": "Validation failed for object='user'. Error count: 1",
"path": "/api/users"
}
"이메일은 null이 아니어야 합니다"와 같은 보다 이해하기 쉬운 오류로 메시지를 변경하고 싶습니다. 내 모델의 속성은 다음과 같습니다.
@NotNull
private String email;
그리고 여기 내 컨트롤러의 방법이 있습니다.
@PostMapping("/users")
public ResponseEntity<User> addUser(@RequestBody @Valid User user) {
User savedUser = manager.save(user);
URI uri = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
return ResponseEntity.ok(savedUser);
}
@NotNull
어노테이션 에서 사용자 정의 메시지를 설정하려고 시도했지만 메시지가 변경되지 않습니다. 또한 오류가 발생하면 콘솔에 다음 메시지가 표시됩니다.
2020-11-26 15:09:11.460 WARN 7137 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity<pl.vemu.socialApp.entities.User> pl.vemu.socialApp.controllers.UserController.addUser(pl.vemu.socialApp.entities.User) throws pl.vemu.socialApp.exceptions.user.UserWithEmailAlreadyExistException: [Field error in object 'user' on field 'email': rejected value [xsars.pl]; codes [Email.user.email,Email.email,Email.java.lang.String,Email]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.email,email]; arguments []; default message [email],[Ljavax.validation.constraints.Pattern$Flag;@2a50b33,.*]; default message [must be a well-formed email address]] ]
응답 json에서 메시지를 설정하는 방법은 무엇입니까?
콘솔에서 이 메시지를 제거하는 방법은 무엇입니까? 다른 오류는 콘솔에 메시지를 표시하지 않습니다.