티스토리 뷰
Spring/Spring Boot
[Error] 406 Not Acceptable HttpMediaTypeNotAcceptableException
woo'^'chang 2022. 7. 29. 22:56Spring Boot
프로젝트를 진행하면서 웹 브라우저를 통해 API
의 결과를 확인하고자 하였습니다. 확인하고자 했던 API는 아래와 같습니다.
@GetMapping("/api/v1/posts/{id}")
public PostsResponseDto findById(@PathVariable Long id) {
return postsService.findById(id);
}
URI
를 통해 ID
값을 전달받아 해당 ID에 해당하는 Posts
엔티티를 Dto
로 변환 후 반환하게 되는 아주 간단한 API입니다. Dto를 반환하기에 웹 브라우저에서 해당 URI로 접근하여도 JSON
형태로 올바른 결과를 확인할 수 있을 것이라 기대하였습니다.
하지만 예상과 다르게 다음과 같은 화면과 로그를 보게 되었습니다.
406 Not Acceptable
클라이언트 오류 코드는 서버 요청의 헤더에 허용 가능한 값 목록과 일치하는 응답을 생성할 수 없기에 발생하는 에러입니다. 이를 보고 전송되는 데이터 변환 과정에서 문제가 발생했음을 짐작할 수 있었습니다.
Dto 파일을 바로 확인해 보았더니
분명 붙인 줄만 알았던 @Getter
어노테이션이 붙어 있지 않았습니다. 해당 어노테이션이 존재하지 않아 JSON 변환 시 private
접근 제어자를 사용한 필드에 접근할 수 없어 에러가 발생하는 것이었습니다. @Getter 어노테이션을 붙인 뒤 다시 확인하였더니 잘 동작하는 것을 확인할 수 있었습니다.
'Spring > Spring Boot' 카테고리의 다른 글
복합키를 가지는 JPA 엔티티 생성하기 (1) | 2022.09.14 |
---|---|
[Spring Boot] 메시지, 국제화란 (0) | 2022.07.30 |
@RequestBody, @ResponseBody (2) | 2022.06.16 |
Logging (0) | 2022.06.16 |
MVC 어댑터 패턴 (1) | 2022.06.16 |
댓글