문제 해결 PR
https://github.com/Playlist-pack/Server/pull/64
✔️ [Fix] : requestDTO의 @Notnull 기능 정상동작하도록 수정 by ulsandonghun · Pull Request #64 · Playlist-pack/
기존에 동작하지 않았던 javax.validation.constraints의 @NotNull 어노테이션 기능을 새로운 의존성을 추가하여 동작하게 하였습니다. 해당 DTO에 @NotNull이 붙은 필드에 JSON value가 Null이면, 자바라이브러리
github.com
우선적으로 Request의 DTO에 붙은 @NotNull(쉽게 설명하면 반드시 Null이 아니어야 하는 곳에 Null이 입력되어서 전송되었을 경우, RuntimeException을 발생시키는 코드 ) 이다. 특히 해당 NotNull 이 붙은 DTO를 활성화 시킬 경우 컨트롤러에서 해당 @RequestBody 파라미터 앞에 @Valid 라는 애너테이션을 추가로 붙여줘야 한다. 그래서 실제로 @Valid 애너테이션 때문에, MethodArgumentNotValidException 예외가 출력되는 것이다 결론은, build.gradle에 spring-starter-validation 의존성이 빠져있었고, 그래도 배포 과정에서 알아차리지 못한 이유는, GlobalExceptionHandler에서 정의한 RuntimeException을 상속한 BuisinessException이 잘 감지되어서 에러 메시지를 반환하고 있었기에 몰랐던 것이다.
그래서 해당 내용 수정후, ExceptionHandler에서 해당 예외 처리시 Defaultmessage만 제대로 출력되도록 변경하니, 정상적으로 동작했다.
참고 래퍼런스 : @NotNull 어노테이션 예외처리 핸들링 - 현구막 기술 블로그 (hyeon9mak.github.io)
'기록 > Spring framework' 카테고리의 다른 글
스프링 시큐리티 필터 동작 과정(2024-01-22) (0) | 2024.01.22 |
---|---|
JWT 와 Session 적용기 (2024-01-22) (0) | 2024.01.22 |
모킹 테스트 코드 작성 이슈 (2024-01-15) (0) | 2024.01.15 |
로그인시 프론트에서 보내는 Request를 어떻게 Entity별로 구분하는가 ? (feat. AccessToken, IDX) 2023-08-07 (0) | 2023.08.09 |
Http 메세지 Content/type에 따른 스프링에서 요청 data 바인딩 방법. 2023-05-20 (0) | 2023.05.20 |