使用Jaxb API将XML解组为Java对象时获取NullPointerException

使用Jaxb API将XML解组为Java对象时获取NullPointerException,java,xml,nullpointerexception,jaxb,annotations,Java,Xml,Nullpointerexception,Jaxb,Annotations,在执行解组时,我得到以下NullPointerException: ID and SortOrder---------------------------------- Exception in thread "main" java.lang.NullPointerException at XmlToObject.main(XmlToObject.java:21) 你能告诉我密码哪里错了吗。我想我在这里做了一些错误的注释。下面是我的代码文件。请帮忙 site.xml &

在执行解组时,我得到以下
NullPointerException

    ID and SortOrder----------------------------------
Exception in thread "main" java.lang.NullPointerException
    at XmlToObject.main(XmlToObject.java:21)
你能告诉我密码哪里错了吗。我想我在这里做了一些错误的注释。下面是我的代码文件。请帮忙

site.xml

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Navigation>
    <NavigationEntry id="3DAB2FFB-1F19-41C6-B38D-77A890DB4D40" sortOrder="1">
        <hidepage>
            a
        </hidepage>
        <name>
            b
        </name>
        <url>
            c
        </url>
        <entitlement>
            d
        </entitlement>
    </NavigationEntry>
</Navigation>
NavigationEntry.java

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;

public class NavigationEntry {
    private String id;
    private int sortOrder;
    private String hidepage;
    private String name;
    private String url;
    private String entitlement;

    @XmlAttribute 
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

    @XmlAttribute 
    public int getSortOrder() {
        return sortOrder;
    }
    public void setSortOrder(int sortOrder) {
        this.sortOrder = sortOrder;
    }

    @XmlElement
    public String getHidepage() {
        return hidepage;
    }
    public void setHidepage(String hidepage) {
        this.hidepage = hidepage;
    }

    @XmlElement
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @XmlElement
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }

    @XmlElement
    public String getEntitlement() {
        return entitlement;
    }
    public void setEntitlement(String entitlement) {
        this.entitlement = entitlement;
    }

}
XmlToObject.java

import java.io.File;   

import javax.xml.bind.JAXBContext;  
import javax.xml.bind.JAXBException;  
import javax.xml.bind.Unmarshaller;  

public class XmlToObject {  
    public static void main(String[] args) {  

     try {  

        File file = new File("site.xml");  
        JAXBContext jaxbContext = JAXBContext.newInstance(Navigation.class);  

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  
        Navigation que= (Navigation) jaxbUnmarshaller.unmarshal(file);

        System.out.println("ID and SortOrder----------------------------------");  
        System.out.println(que.getNavigationEntry().getId() +" " + que.getNavigationEntry().getSortOrder());  
        System.out.println("Hidepage----------------------------------" + que.getNavigationEntry().getHidepage());  
        System.out.println("name----------------------------------" + que.getNavigationEntry().getName());
        System.out.println("url----------------------------------" + que.getNavigationEntry().getUrl());
        System.out.println("entitlement----------------------------------" + que.getNavigationEntry().getEntitlement());

        System.out.println();
      } catch (JAXBException e) {  
        e.printStackTrace();  
      }  
    }  
}  

嗯。我知道答案了。我没有在Navigation.java中添加@xmlement(name=“NavigationEntry”)


问题已解决。:)

嗯。我知道答案了。我没有在Navigation.java中添加@xmlement(name=“NavigationEntry”)

问题已解决。:)

import java.io.File;   

import javax.xml.bind.JAXBContext;  
import javax.xml.bind.JAXBException;  
import javax.xml.bind.Unmarshaller;  

public class XmlToObject {  
    public static void main(String[] args) {  

     try {  

        File file = new File("site.xml");  
        JAXBContext jaxbContext = JAXBContext.newInstance(Navigation.class);  

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  
        Navigation que= (Navigation) jaxbUnmarshaller.unmarshal(file);

        System.out.println("ID and SortOrder----------------------------------");  
        System.out.println(que.getNavigationEntry().getId() +" " + que.getNavigationEntry().getSortOrder());  
        System.out.println("Hidepage----------------------------------" + que.getNavigationEntry().getHidepage());  
        System.out.println("name----------------------------------" + que.getNavigationEntry().getName());
        System.out.println("url----------------------------------" + que.getNavigationEntry().getUrl());
        System.out.println("entitlement----------------------------------" + que.getNavigationEntry().getEntitlement());

        System.out.println();
      } catch (JAXBException e) {  
        e.printStackTrace();  
      }  
    }  
}