728x90
RequestDto에서 validation을 설정하고 Handler에서 체크가 되어야하는데, 예외처리가 되지않는 현상이 있엇습니다.
@NotBlank(message = "매장 코드는 필수 입력 항목입니다.")
@Size(max = 5, message = "매장 코드는 최대 5자 입니다.")
private String shopCode;
RestControllerAdvice에서 설정한 곳
@RestControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatusCode status, WebRequest request) {
ErrorCode errorCode = ErrorCode.INVALID_BAD_REQUEST;
List<String> errors = ex.getBindingResult().getFieldErrors()
.stream()
.map(e -> String.format("{ %s : %s }", e.getField() , e.getDefaultMessage()))
.collect(Collectors.toList());
ExceptionResponse exceptionResponse = ExceptionResponse.builder()
.httpStatus(errorCode.getHttpStatus().value())
.httpStatusCode(errorCode.getHttpStatus().name())
.msg(String.join(", ", errors))
.name(errorCode.name())
.build();
return ResponseEntity.status(errorCode.getHttpStatus()).body(BaseResponse.setFail(errorCode, exceptionResponse));
}
아래처럼 해당하는 RequestBody앞에 @Valid 어노테이션을 추가해야합니다.
@PostMapping("/reservation")
public BaseResponse<OrderReservationResponseDto> postOrderReservation(@Valid @RequestBody OrderReservationRequestDto requestDto){
return orderService.saveOrderReservation(requestDto);
}

되는 것을 확인했습니다.!!
'Trouble Shooting' 카테고리의 다른 글
| [Spring Boot] RequestParam @valid 어노테이션 활성화 (0) | 2023.09.20 |
|---|---|
| [Git] remote: Invalid username or password. (0) | 2023.09.15 |
| [Linux] FirewallD is not running (0) | 2023.09.08 |
| filzila로 전송이 안됄때 (0) | 2023.09.05 |
| [Spring Boot] Unsatisfied dependency expressed through field '..'; 단위 테스트시 Bean 생성에러 (0) | 2023.08.14 |