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" 关系
我收到 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" 关系