문제 : API 전송시 406 에러 발생
배경
현재 배우는 영상의 강의를 따라 하다가 406번 에러가 발생했습니다. Intelij
에서는 HttpMediaTypeNotAcceptableException
이 발생했다고 알려줍니다. 오늘 배운 바로는 4XX
에러는 클라이언트가 패킷을 전송할 때 발생하는 오류입니다. 그 말은 즉, 제가 보내는 방식이 잘못되었다는 것을 알 수 있습니다. 하지만 JSON
의 raw
를 고치고, 파일을 봐도 뭐가 잘못된건지 모르겠어서 트러블슈팅을 작성하게 되었습니다.
원인
구글링을 해서 찾아보니 Dto
클래스에 @Getter
를 붙이지 않아서 오류가 발생했다고 하길래 제 Dto
클래스를 찾아봤습니다.
package com.example.memo.dto;
import com.example.memo.entity.Memo;
public class MemoResponseDto {
private Long id;
private String title;
private String contents;
public MemoResponseDto(Memo memo) {
this.id = memo.getId();
this.title = memo.getTitle();
this.contents = memo.getContents();
}
}
@Getter
annotation이 붙어있지 않습니다.
해결
package com.example.memo.dto;
import com.example.memo.entity.Memo;
import lombok.Getter;
@Getter
public class MemoResponseDto {
private Long id;
private String title;
private String contents;
public MemoResponseDto(Memo memo) {
this.id = memo.getId();
this.title = memo.getTitle();
this.contents = memo.getContents();
}
}
Dto
클래스에 @Getter
를 붙였습니다. 돌린 결과는 성공입니다.