場景描述:使用axis2發布webservice時,傳遞參數的對象屬性包含map,即:
public Class AA implements Serializable {
public Map B;
生成的wsdl中包含
<xs:complexType name= "A"> <xs:sequence> <xs:element name="B" type="xs:anyType" nillable="true" minOccurs="0"/> </xs:sequence> </xs:complexType>
生成客戶端后調用報錯: Caused by: javax.xml.stream.XMLStreamException: Unknow type can not serialize
過程分析:
axis2解析wsdl時會將xs:anyType認為是Object類型,但Obejct類型只有序列化才能傳輸,故解析報錯
解決方案:
將map換成對象數組的形式,
public Class AA implements Serializable {
public B[] bb;
public Class B implements Serializable {
private String key;
private String value;