개인적으로 문제가 해결된 방안을 공유하고자 하는 것이며

반드시 해결되지 않을 수 있음을 알려드립니다.
이 외 해결 방법 및 조언 환영합니다.

 

view에서 controller의 response를 받긴 함.

 

java.lang.StackOverflowError: null

 

하기 메세지 반복

at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) ~[jackson-databind-2.11.4.jar:2.11.4]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) ~[jackson-databind-2.11.4.jar:2.11.4]

 

view의 콘솔에서는 response 값을 찍는 중 특정 부분에서 출력이 끊기며 수백줄 반복 출력

 

- 원인 

우선 위의 '특정 부분에서 출력이 끊기며' 이 끊기는 부분이 A클래스 출력이 시작되는 부분이었다. "클래스명": 후 끊김.

Json 값에 dto가 들어있다. 그 dto가 A라는 클래스를 상속받았다.

dto안의 중첩클래스에서도 A라는 클래스를 멤버로 두기 때문에 해당 dto안에선 A라는 클래스가 중첩된다.

 

- 해결 

Json에 담지 않는 중첩클래스 선언부에 @JsonBackReference 어노테이션은 사용하여 직렬화를 수행하지 않도록 알려주었더니 해당 오류는 발생하지 않고 정상적으로 데이터를 받을 수 있었다.

 

* 직렬화란?

데이터를 연속적인 데이터로 변환하는 것을 말한다.

우리가 '데이터를 전송하기 위해 Json형태로 만드는 과정' 같은 것들을 예로 들 수 있다.

+ Recent posts