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