[JSON] 스프링 부트에서 json 형식으로 반환시 nested exception
User class를 rest로 호출해서 json으로 반환하는데, 다음과 같은 오류가 난다.
user class에는 권한, 부서 등의 관계가 맺어져 있다.
대충 내용을 보아하니 서로 호출해서 문제인거 같은데, 우선적으로는 다음과 같이 풀었다.
2018-05-18 17:16:48.037 WARN 34740 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: kr.drsoft.model.security.Tcm_user["dept"]->kr.drsoft.model.Tcm_dept_$$_jvstef3_2["handler"])
[application.properties]
# lazy relation to json
spring.jackson.serialization.fail-on-empty-beans=false
[dept class]
@JsonIgnore
Dept class에서 user class와 관계를 맺어두었는데, 유저를 호출하니 부서를 부르고, 부서를 호출하니 유저를 불러서 문제인 듯…. 하여 dept의 user에 다음과 같은 애노테이션 부여.
이제 다시 잘 된다. 스프링 처음 접하니 여러모로 볼 게 많다.