3
我無法獲得由Java的JAXB實現編組的以下類結構。我有一個抽象標識符類,它有一個值。JAXB和多態性
對我來說,重要的是價值應該歸屬於一個屬性。
@XmlSeeAlso({
AbstractIDInt.class
})
@XmlRootElement(name = "AbstractID")
@XmlAccessorType(XmlAccessType.PROPERTY)
public abstract class AbstractID {
@XmlAttribute
abstract Object getValue();
}
而且,這裏是一個擴展了抽象的ID類的類:如果你試圖馬歇爾一些類型AbstractID的
@XmlRootElement(name = "AbstractIDInt")
@XmlAccessorType(XmlAccessType.NONE)
public class AbstractIDInt extends AbstractID {
Integer value;
Integer getValue() {
return value;
}
public void setvalue (Integer value) {
this.value = value;
}
}
目前Java的JAXB實現只是拋出一個異常。
這是違反JAXB標準中的某些東西還是Java的JAXB實現中斷?
謝謝。任何想法如何我可以註釋AbstractID以使其與Java的JAXB實現一起工作?我通過CXF使用JAXB來生成WSDL。我需要從WSDL生成的代碼通過getValue()方法生成AbstractID。 – rouble 2012-02-21 18:27:16
@prmatta - 我添加了一個可以與JAXB RI一起使用的更新。 – 2012-02-21 18:38:04
我認爲與此相關的問題是,在生成的WSDL以及從WSDL生成的代碼中,AbstractID現在將是一個空類,而AbstractIDInt具有「值」字段。所以,想要獲得值的人首先需要投影到AbstractIDInt。這並不理想 - 因爲無法知道投射到哪個派生類型。我需要一種方法,即字段「值」需要從AbstractID繼承。任何其他想法? – rouble 2012-02-21 18:57:45