有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法解组JAXBElement结构。结果为空

我有xml结构,比如

    <SyncContact>
            <Contact>
                <Addresses>
                    <Entry>
                        <AddressType>
                            <Code>reg</Code>
                        </AddressType>
                    </Entry>
               <Addresses>
          <Contact>
 </SyncContact>

还有一类是:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SyncContact",  propOrder = {
    "Contact",
})
@XmlRootElement(name = "synContact ")
public class SynContact {

    @XmlElementRef(name = "Contact", type = JAXBElement.class, required = false)
    protected JAXBElement<Contact> abContact;

    public JAXBElement<Contact> getContact() {
        return abContact;
    }

    public void setContact(JAXBElement<Contact> value) {
        this.Contact = value;
    }

}

以及上述类别中使用的其他类别:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Contact", propOrder = {
    "Addresses",}
public class ABContact {
@XmlElementRef(name = "Addresses", type = JAXBElement.class, required = false)
    protected JAXBElement<Contact.Addresses> Addresses;

 public JAXBElement<Contact.Addresses> getAllAddresses() {
        return Addresses;
    }


    public void setAllAddresses(JAXBElement<Contact.Addresses> value) {
        this.Addresses = value;
    }
}

以及上述中使用的其他类别:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "entry"
})
public static class Addresses {
 public List<ABContact.Addresses.Entry> getEntry() {
        if (entry == null) {
            entry = new ArrayList<Contact.Addresses.Entry>();
        }
        return this.entry;
    }

}

以及我解组的代码:

 private static SyncContact createContact(String contactRequestESB) {

            SyncContact contactSyncObj = null;
            JAXBContext jaxbContext = null;
            SyncContact contactSynchronisation = null;
            File file = new File(contactRequestESB);

            try {

                JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);

                Unmarshaller u = jc.createUnmarshaller();

                File f = new File (contactRequestESB);

                jaxbContext = JAXBContext.newInstance(SyncContact.class);
                Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
                JAXBElement<SyncContact> root = (JAXBElement<SyncContact>)jaxbUnmarshaller.unmarshal(file);
                contactSyncObj = root.getValue();

            } catch (Exception e) {
                e.printStackTrace();
            }
            return contactSyncObj;
        }

但当我调试解组时,我发现我的条目并没有被解组。我不明白为什么它不能这样做。我有SyncContact在里面我有Contact在Contact中我有地址但没有xml中的条目值(reg)。 请帮忙


共 (0) 个答案