1
大家好 我想代表以下XML代码:@XmlElementWrapper产生一个NullPointerException
<AggregationMeta>
<AggregationLink>
<LocalName>stuff</LocalName>
<Value>stuff</Value>
<Meta/>
</AggregationLink>
<AggregationLink>
<LocalName>stuff</LocalName>
<Value>stuff</Value>
<Meta/>
</AggregationLink>
</AggregationMeta>
,我想做到这一点使用@XmlElementWrapper注解。
这里的课堂,我使用它:
public class VrIdnMeta {
private String lri;
private String nodeLocalName;
private List<Link> referenceLink;
private List<Link> aggregationLink;
private List<SimpleLink> backLink;
private List<SimpleLink> incomingChangeLink;
...
@XmlElementWrapper(name = "ReferenceMeta")
@XmlElement(name = "ReferenceLink")
public List<Link> getReferenceLink() {
return referenceLink;
}
public void setReferenceLink(List<Link> referenceLink) {
this.referenceLink = referenceLink;
}
@XmlElementWrapper(name = "AggregationMeta")
@XmlElement(name = "AggregationLink")
public List<Link> getAggregationLink() {
return aggregationLink;
}
public void setAggregatioinLink(List<Link> aggregationLink) {
this.aggregationLink = aggregationLink;
}
@XmlElementWrapper(name = "BackLinkMeta")
@XmlElement(name = "BackLink")
public List<SimpleLink> getBackLink() {
return backLink;
}
public void setBackLink(List<SimpleLink> backLink) {
this.backLink = backLink;
}
@XmlElementWrapper(name = "IncomingChangeMeta")
@XmlElement(name = "IncomingChangeLink")
public List<SimpleLink> getIncomingChangeLink() {
return incomingChangeLink;
}
public void setIncomingChangeLink(List<SimpleLink> incomingChangeLink) {
this.incomingChangeLink = incomingChangeLink;
}
}
和这里的SimpleLink类
public class SimpleLink {
private String localName;
private String value;
...
@XmlElement(name = "LocalName")
public String getLocalName() {
return localName;
}
public void setLocalName(String localName) {
this.localName = localName;
}
@XmlElement(name = "Value")
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
终于Link类
public class Link extends SimpleLink{
private String meta;
public Link(String localName, String value, String meta) {
super(localName, value);
this.meta = meta;
}
public Link() {
super();
}
public Link(String localName, String value) {
super(localName, value);
}
@XmlElement(name = "Meta")
public String getMeta() {
return meta;
}
public void setMeta(String meta) {
this.meta = meta;
}
}
当我使用JAXB2问题就来了解开一个类似于我上面写的那个xml:我得到一个NullPointerException :-(。 我读到jaxb中存在一个关于这个事实的错误,但是它在2006年得到了解决,我正在使用spring 3(和他自己的jaxb2库)。
任何人都有线索?
我非常感谢你!你是完全正确的!我真的看不到错字!我总是使用自动getter&setter IDE生成,并且setter来自拼写错误(后来更正)的属性命名!我正在努力调试图书馆的胆量!下一个圣诞节你将会有一瓶来自意大利的葡萄酒! ;-) – MaVVamaldo 2011-05-14 11:04:27