WebService传输SoapObject数据出现 org.ksoap2.serialization.SoapObject cannot be cast to java.util.Vector的问题

在很多地方都需要使用到WebService服务器,在最近做的一个项目中也是用到webService服务器,由于第一次开发web服务器,很多都不懂,都是找的网上的例程,一开始一切都很顺利,数据上传过程中是没有问题的,但是在下载过程中却遇到了一个很大的问题。

try {se.call(soapAction, envelope);//步骤8:获取从互联网返回的结果if(envelope.getResponse() != null){Object resout = envelope.getResponse();System.out.println("result----" + resout.toString());System.out.println("result----" + resout.getClass());System.out.println(resout instanceof Vector);//解析集合resoult@SuppressWarnings("unchecked")Vector vec = (Vector) resout;System.out.println("vec--" + vec);//循环显示StringBuffer buffer = new StringBuffer();for(SoapObject soapObject : vec){buffer.append(soapObject.getProperty("patient_phone")+"_");buffer.append(soapObject.getProperty("advice")+"#");}
在运行到Vector vec = (Vector) resout;的时候一直会报一个类型转换错误。


这个问题一直困扰了很多天,一直不知道是什么问题,但是在另外一台服务器上面下载竟然又是正常的(两台服务器的代码一模一样),两台服务器都能返回数据,但是就是其中一台会报出类型转换错误。

下面是从服务器收到的数据。

第一台服务器,转换正常

result----[anyType{advice=20,0,500,0,60,0,50,0,25,400; patient_phone=18875208558; }, anyType{advice=67,0,560,0,70,0,70,0,50,654; patient_phone=13548263528; }]
第二台服务器,转换报错

result----anyType{advice=20,0,500,0,60,0,50,0,25,400; patient_phone=18875208558; }
然后注意到第一个返回的数据有一个[],然而第二台却没有,是不是因为[]的问题,然后就想着向服务器再发一台数据,跟第一台服务器一样,问题竟然解决了,不会报类型转换错误。

最后发现要下载数据的话,服务器里面的数据不能只有一条,一条数据必定报错,两条数据及以上,则正常!!!



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部