반응형
0. 현상
cohttp://m.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class
아래 캡쳐로 내가 responsebody로 리턴할 클래스가 없다는 표현이 나오는 에러가 발생했다.
1. 원인
- Controller에서 @ResponseBody를 사용해서 json으로 리턴하는 방식으로 구현했는데, @ResponseBody에서 객체를 json으로 변환하려면 객체의 클래스에 Getter가 존재해야한다.
- Setter만 필요해 보였던 클래스라서 Getter를 따로 입력하지 않았는데, 그게 문제가 된 것 같다.
2. 해결방법
2-1. @Getter 추가
- 일반적인 방법은 Getter를 추가하면 됩니다.
- @ResponsBody에서 객체를 Json으로 변환 할 때, Getter를 사용해서 가져오는게 일반적입니다.
2-2. @JsonAutoDetect 추가
- Getter를 사용하기 싫을 때는 JsonAutoDetect를 사용해서 사용하면됩니다.
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
본인 프로젝트 상황에 맞게 @Getter 또는 @JsonAutoDetect를 사용해서 해결하시면 될것 같습니다.
반응형
'Back-end > Spring' 카테고리의 다른 글
[Spring] 시큐리티 Security 의존성 추가 방법 (0) | 2024.01.10 |
---|---|
[Spring] mybatis에서 카멜케이스로 자동 변환 옵션(application.yml) (1) | 2024.01.08 |
[IntelliJ] Database에서 DTO/VO 자동 생성 방법 (0) | 2024.01.04 |
[Error] Could not find mysql:mysql-connector-java:. (0) | 2024.01.04 |
[Error] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. (0) | 2024.01.04 |