WebService传输SoapObject数据出现 org.ksoap2.serialization.SoapObject cannot be cast to java.util.Vector的问题
在很多地方都需要使用到WebService服務(wù)器,在最近做的一個(gè)項(xiàng)目中也是用到webService服務(wù)器,由于第一次開發(fā)web服務(wù)器,很多都不懂,都是找的網(wǎng)上的例程,一開始一切都很順利,數(shù)據(jù)上傳過程中是沒有問題的,但是在下載過程中卻遇到了一個(gè)很大的問題。
try {se.call(soapAction, envelope);//步驟8:獲取從互聯(lián)網(wǎng)返回的結(jié)果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<SoapObject> vec = (Vector<SoapObject>) resout;System.out.println("vec--" + vec);//循環(huán)顯示StringBuffer buffer = new StringBuffer();for(SoapObject soapObject : vec){buffer.append(soapObject.getProperty("patient_phone")+"_");buffer.append(soapObject.getProperty("advice")+"#");} 在運(yùn)行到Vector<SoapObject> vec = (Vector<SoapObject>) resout;的時(shí)候一直會(huì)報(bào)一個(gè)類型轉(zhuǎn)換錯(cuò)誤。
這個(gè)問題一直困擾了很多天,一直不知道是什么問題,但是在另外一臺(tái)服務(wù)器上面下載竟然又是正常的(兩臺(tái)服務(wù)器的代碼一模一樣),兩臺(tái)服務(wù)器都能返回?cái)?shù)據(jù),但是就是其中一臺(tái)會(huì)報(bào)出類型轉(zhuǎn)換錯(cuò)誤。
下面是從服務(wù)器收到的數(shù)據(jù)。
第一臺(tái)服務(wù)器,轉(zhuǎn)換正常
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; }]第二臺(tái)服務(wù)器,轉(zhuǎn)換報(bào)錯(cuò)
result----anyType{advice=20,0,500,0,60,0,50,0,25,400; patient_phone=18875208558; }然后注意到第一個(gè)返回的數(shù)據(jù)有一個(gè)[],然而第二臺(tái)卻沒有,是不是因?yàn)閇]的問題,然后就想著向服務(wù)器再發(fā)一臺(tái)數(shù)據(jù),跟第一臺(tái)服務(wù)器一樣,問題竟然解決了,不會(huì)報(bào)類型轉(zhuǎn)換錯(cuò)誤。
最后發(fā)現(xiàn)要下載數(shù)據(jù)的話,服務(wù)器里面的數(shù)據(jù)不能只有一條,一條數(shù)據(jù)必定報(bào)錯(cuò),兩條數(shù)據(jù)及以上,則正常!!!
總結(jié)
以上是生活随笔為你收集整理的WebService传输SoapObject数据出现 org.ksoap2.serialization.SoapObject cannot be cast to java.util.Vector的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡办理几张会影响征信 只要正常使用
- 下一篇: 车险多久买一次