因需要,在webservice返回的response中需要包含对象List<QueryResult>,使用axis生成代码后,自动转化为对象数组。
按照常规方式,部署之后,soapUi测试返回时报错:
2011-12-19 17:39:57 org.apache.axis.encoding.ser.BeanSerializer serialize
严重: Exception:
java.io.IOException: No serializer found for class cc.bb.QueryResult in registry org.apache.axis.encoding.TypeMappingDelegate@67333875
?? ?at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
?? ?at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
解决办法:
?? 1.将返回对象中的对应的Object[]修改成QueryResult[]
?? 2.在/WEB-INF/server-config.wsdd中<service></service>标签中增加:
????? <typeMapping
?????? xmlns:ns="http://bb.cc"
?????? qname="ns:QueryResult"
?????? type="java:cc.bb.SubscriptionQueryResult"
?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
?????? deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
?????? encodingStyle=""
???? />
??? ?
?????? <typeMapping
?????? xmlns:ns="http://bb.cc"
?????? qname="ns:QueryResultArray"
?????? type="java:cc.bb.QueryResult[]"
?????? serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
?????? deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
?????? encodingStyle=""
???? />
可以成功返回。