Back-end/Spring

[Error] No serializer found for class 해결방법

shoney9254 2024. 1. 5. 16:23
반응형

 

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를 사용해서 해결하시면 될것 같습니다.

반응형