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

Java 无法解组JAXBElement结构。结果为空,java,jaxb,Java,Jaxb,我有xml结构,比如 <SyncContact> <Contact> <Addresses> <Entry> <AddressType> <Code>reg</Code>

我有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;
    }

}
@xmlacessortype(xmlacesstype.FIELD)
@XmlType(name=“SyncContact”,比例器={
“联系人”,
})
@XmlRootElement(name=“synContact”)
公共类同步触点{
@xmlementref(name=“Contact”,type=JAXBElement.class,required=false)
保护性接触;
公共JAXBElement getContact(){
返回abContact;
}
public void setContact(JAXBElement值){
这个。触点=值;
}
}
以及上述类别中使用的其他类别:

@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;
    }
}
@xmlacessortype(xmlacesstype.FIELD)
@XmlType(name=“Contact”,比例器={
“地址”}
公共类ABContact{
@xmlementref(name=“Addresses”,type=JAXBElement.class,required=false)
受保护的地址;
公共JAXBElement getAllAddresses(){
返回地址;
}
public void setAllAddresss(JAXBElement值){
这个。地址=值;
}
}
以及上述中使用的其他类别:

@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;
    }
@xmlacessortype(xmlacesstype.FIELD)
@XmlType(name=),比例={
“条目”
})
公共静态类地址{
公共列表getEntry(){
if(条目==null){
entry=newarraylist();
}
返回此条目;
}
}

以及我解组的代码:

 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;
        }
private static SyncContact createContact(字符串contactRequestESB){
SyncContact contactSyncObj=null;
JAXBContext JAXBContext=null;
SyncContact ContactSynchronization=null;
文件文件=新文件(contactRequestESB);
试一试{
JAXBContext jc=JAXBContext.newInstance(ObjectFactory.class);
解组器u=jc.createUnmarshaller();
文件f=新文件(contactRequestESB);
jaxbContext=jaxbContext.newInstance(SyncContact.class);
解组器jaxbUnmarshaller=jaxbContext.createUnmarshaller();
JAXBElement root=(JAXBElement)jaxbUnmarshaller.unmarshal(文件);
contactSyncObj=root.getValue();
}捕获(例外e){
e、 printStackTrace();
}
返回联系人syncobj;
}
但当我调试解组时,我发现我的条目没有解组。我不明白为什么它不能这样做。我有SyncContact在里面,我有Contact在里面,我已经寻址了,但是xml中没有条目值(reg)。
请帮助。

Schlundn您不是用XmlRootElement注释SyncConct类吗?仍然不起作用。用XmlRootElement更改我的问题实际上您写的是“SyncConct”而不是“SyncConct”