2011-05-12 7 views
1

こんにちはすべて を生成します。ここ@XmlElementWrapperは、私は次のXMLコードを表現しようとしていますNullPointerExceptionが

は、私はそれを使用するクラスです:

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

、最終的にリンククラス

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年に解決されたと私は彼自身のjaxb2ライブラリと春3を使用していることを読む。

誰か手掛かりがありますか?

答えて

1

は、NPEはない(VrIdnMetaに)アップマッチングあなたのgetおよびsetメソッドの名前に由来しているようだ:

@XmlElementWrapper(name = "AggregationMeta") 
@XmlElement(name = "AggregationLink") 
public List<Link> getAggregationLink() { 
    return aggregationLink; 
} 

public void setAggregatioinLink(List<Link> aggregationLink) { 
    this.aggregationLink = aggregationLink; 
} 

私は期待通りに実行するためにあなたの例を得たsetAggregationLinksetAggregatioinLinkを変更したとき。

+0

ありがとうございました!あなたは完全に正しいです!私は本当にタイプミスを見ることができませんでした!私は常に自動ゲッターとセッターのIDE生成を使用し、そのセッターは誤った(そして後に修正された)属性の命名から来ました! _a lot_の努力でライブラリの勇気でデバッグしていました!あなたは次のクリスマスにイタリアからワインのボトルを持っています! ;-) – MaVVamaldo

関連する問題