做项目需要用到webservice的知识,自学了两天,遇到一个错误,找了很多资料也没找到材料,没有办法,来此求助,请大家伸出援助之手~-~,谢谢了。
发布public List<DET> getDET(int start_id,int end_id)方法,其中DET是自定义类,能够直接在服务器中调用,并成功返回。
deploy.wsdd文件如下
- XML code
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- note that either style="message" OR provider="java:MSG" both work -->
<service name="WmsDet" provider="java:RPC">
<parameter name="className" value="com.pdbs.wms.webservice.WmsDet" />
<parameter name="allowedMethods" value="*" />
<typeMapping
qname="ns:DET"
type="java:com.pdbs.wms.webservice.DET"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns="http://127.0.0.1:8080/axis/services/WmsDet"/>
<parameter name="scope" value="request" />
</service>
</deployment>
能够在浏览器里发现此服务。
但是我在java中调用这个webservice就有问题,
List<DET> list = (ArrayList<DET>) call.invoke(new Object[]{i,j});
无法获取到这个数据集,Eclipse给出的警告的是Type safety: Unchecked cast from Object to ArrayList<DET>
现在求助,请诸位多多帮助。
------解决方案--------------------
一般来说,webservice不支持List形式的数据。你可以考虑定义数组来实现,DET[]
------解决方案--------------------
从webservice获取来的数据默认都是object类型的,你看你报的错误,object无法转换为list,如果方法的返回值一定要是list的话,则可以先转换为string,再将string以","split一下,转换为string数组后再add到list中,比较麻烦,你可以试一下