1.在使用jaxbMarshaller生成xml的過程中,有java bean如下使用到了泛型:
@XmlRootElement(name = "ReturnInfo")
@XmlType()
public class ReturnInfo<T> {
private List<T> resultList;
public List<T> getResultList() {
return resultList;
}
public void setResultList(List<T> resultList) {
this.resultList = resultList;
}
}
2.在最初測試的時候jaxbMarshaller報異常,無法找到處理泛型的辦法。
3.在使用jaxb時需要在java bean打上@XmlSeeAlso(MultiQueryInfo.class)注釋,作用就是是在jaxb綁定一個class時候可以使用
其他的class,在jaxb使用多態的時候都需要用到此標簽;其中括號中可以添加多個class,如@XmlSeeAlso(A.class,B.class)
4.在客戶端的bean中也需要用到此注釋,否則同樣報轉換錯誤:
Exception in thread "main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.ElementNSImpl cannot be cast to com.jd.fms.adsettlement.client.domain.MultiQueryInfo