未编组对象对其自身JAXB的引用

时间:2019-06-04 10:01:30

标签: java xml web-services soap jaxb

我终于设法解组了一个具有相同名称(父级和子级)的嵌套XML节点。这意味着将返回一个对象,该对象具有引用同一对象的属性。一旦我尝试实例化该对象,我就会收到java.lang.StackOverflowError。我确实了解为什么会发生这种情况,但是有办法避免这种情况吗?

TestDetails.java

@XmlAccessorType(XmlAccessType.FIELD)
public class TestDetails{

public TestDetails() {}

@XmlElement(name="A")
private String A;

@XmlElement(name="B")
private String B;   

@XmlElement(name="TestDetails")
private List<TestDetails> TestDetails = new ArrayList<TestDetails>();

}

XML结构:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body>
          <GetTestlistWithConnectionsResponse xmlns="http://tempuri.org/">
             <GetTestlistWithConnectionsResult xmlns:a="http://schemas.datacontract.org/XXX" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                <a:Error i:nil="true"/>
                <a:TestDetails>
                   <a:TestDetails>
                      <a:A>A</a:A>
                      <a:B>B</a:B>
                   </a:TestDetails>
                </a:TestDetails>
            </GetTestlistWithConnectionsResult>
           </GetTestlistWithConnectionsResponse>
       </s:Body>
    </s:Envelope>

有一种常见的处理方法吗?我需要访问嵌套的TestDetails对象内的值。为了避免这种情况,JAXB是否提供了类似重命名的变通方法?

0 个答案:

没有答案