我发现了类似的问题,但没有一个答案对我有帮助。
所以,我有 2 个具有反向指针关系的对象。家长:
@XmlRootElement
public class A {
private B b;
@XmlElement(name = "Element B")
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
}
和乙:
@XmlRootElement
public class B {
private A a;
@XmlInverseReference(mappedBy = "b")
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}
我已将jaxb.properties与模型放在同一个包中。(javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory)
在这个片段之后:
A a = new A();
a.setB(new B());
a.getB().setA(a);
“ a ”的Json 表示是循环的“见下文”:
{"元素 B":{"a":{"元素 B":{"a":{"元素 B":{"a":{"元素 B":{"a":{"元素 B": {"a":{"元素 B":{"a":{"元素 B":{"a":{"元素 B":{"a":{"元素 B":{"a":{ “…………
并且堆栈跟踪也是循环的:
在 org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:245) 在 org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:212) 在 org.codehaus.jackson.map .ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:428) 在 org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:245) 在 org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer .java:212) 在 org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:428) 在 org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:245)
我怀疑我没有正确地将 MOXy 扩展添加到我的项目中......(刚刚添加到项目 eclipselink.jar 中)