Spring에서 406 Not Acceptable 상황 해결: @Getter가 없는 경우 JSON 변환 실패

seeeeu·약 8시간 전
0

Spring

목록 보기
2/2

문제 상황

회원가입을 처리하는 서비스와 컨트롤러를 만든 후 curl 명령어로 POST 요청을 통해 회원가입 테스트를 진행했지만, 상태 코드가 406 Not Acceptable로 반환되는 상황이었다.

데이터베이스에 값은 잘 저장되는 것이 확인되었으나, 상태 코드가 200 OK가 아닌 406이 반환된 것이다.

DB 저장 확인

406 status 란?

문제 원인

@AllArgsConstructor
@NoArgsConstructor
public class MemberRegisterResponse  {
  private String message;
}

response로 변환을 할때 Jackson 라이브러리가 객체의 필드값을 읽기 위해서는 getter메서드를 호출한다. 만일 getter 메서드가 없을 때 Jackson 라이브러리가 해당 객체 필드를 읽을 수 없기 때문에 JSON 변환이 실패하는 것이었다.

Request단에는 Getter 어노테이션을 적어서 문제가 없었지만 Response에는 어노테이션을 깜박해서 이런 상황이 발생되었다.

해결 방법

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class MemberRegisterResponse  {
  private String message;
}

Dto에 @Getter를 두어 해결되었다.

post-custom-banner

0개의 댓글