[英]Getting NullPointerException while unmarshalling the XML to Java Object using Jaxb API
I am getting the below NullPointerException
while performing unmarshalling: 执行解组时出现以下
NullPointerException
:
ID and SortOrder----------------------------------
Exception in thread "main" java.lang.NullPointerException
at XmlToObject.main(XmlToObject.java:21)
Could you please let me know where am I wrong with the code. 您能否让我知道我在哪里写错了代码。 I think I am performing some wrong annotation work here.
我想我在这里执行了一些错误的注释工作。 Below is my code files.
以下是我的代码文件。 Please help.
请帮忙。
site.xml 的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>
Navigation.java Navigation.java
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Navigation")
public class Navigation {
private NavigationEntry NavigationEntry;
@XmlElement
public NavigationEntry getNavigationEntry() {
return NavigationEntry;
}
public void setNavigationEntry(NavigationEntry navigationEntry) {
NavigationEntry = navigationEntry;
}
}
NavigationEntry.java 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 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();
}
}
}
Well. 好。 got the answer.
得到了答案。 I have not added @XmlElement(name="NavigationEntry") in the Navigation.java
我没有在Navigation.java中添加@XmlElement(name =“ NavigationEntry”)
The issue is fixed. 该问题已解决。 :)
:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.