Jaxb 循环(无限循环)编组错误 - MOXy 和 Spring OXM

Jaxb cycle (infinite loop) marshalling error - MOXy and Spring OXM

我收到 JAXB 编组错误(循环无限循环)- 发布在这个问题的末尾。

我知道这是由于 2 路对象引用,我在测试用例中使用了 EclipseLink MOXy JAXB 编组器来解析这个指定的 ID 和 IDREF,并使用包含 jaxb.properties 的文件指定了 JAXB 提供程序14=]

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

但是生产代码使用 Spring OXM,我看不出如何使用它获得类似的结果。

我已经添加了一个 jaxb.properties 文件,但它没有被使用 - 我知道这一点是因为我添加了一个空文件作为测试并且它没有抱怨(就像它在原型测试用例上所做的那样) ).

如何指定要使用的 JAXB 编组器? 它似乎在使用:

org.eclipse.persistence.oxm.XMLMarshaller

而我的工作测试用例使用:

org.eclipse.persistence.jaxb.JAXBMarshaller

异常: javax.xml.bind.MarshalException - 有链接异常: [异常 [EclipseLink-25037](Eclipse 持久性服务 -
2.6.1.v20150916-55dc7c3):
org.eclipse.persistence.exceptions.XMLMarshalException 异常描述:在对象图中检测到循环。这会 导致无限循环:
在 org.eclipse.persistence.jaxb.JAXBMarshaller.marshal (JAXBMarshaller.java:487)

好的 - 为了解决这个问题,我指定了(在 Spring OXM 文件中)

<xml-inverse-reference mapped-by="myObject" 
    <xml-element xml-idref="true" 

我只添加了 xml-idref="true" 关系