ksoap2 в Android в получении нескольких массивов данных - PullRequest
2 голосов
/ 12 мая 2011

на самом деле у меня есть сервис для поиска сотрудника .. этот сервис дает мне результат в виде нескольких массивов, таких как:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
  <ns1:searchResponse xmlns:ns1="urn:abcdwsdl">
 <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[6]">
    <item xsi:type="xsd:string">success</item>
    <item xsi:type="xsd:string">Search results retrieved for *</item>
    <item xsi:type="xsd:">
       <item>
          <ad_id xsi:type="xsd:string">2</ad_id>
          <fname xsi:type="xsd:string">abcr</ad_text>
          <lname xsi:type="xsd:string">def</location>
          <phone xsi:type="xsd:float">123456</lati>
          <address xsi:type="xsd:float">America</longi>
       </item>
       <item>
          <ad_id xsi:type="xsd:string">12</ad_id>
          <fnamet xsi:type="xsd:string">test user</ad_text>
          <lname xsi:type="xsd:string">hello</location>
          <phone xsi:type="xsd:float">987654543</lati>
          <address xsi:type="xsd:float">England</longi>
       </item>
    </item>
    <item xsi:type="xsd:int">2</item>
    <item xsi:type="xsd:int">0</item>
    <item xsi:type="xsd:int">0</item>
 </return>
  </ns1:searchResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>  

Теперь я добавил следующий код:

androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject result=(SoapObject) envelope.getResponse();

Но getResponse выдает мне следующую ошибку:

in catch
java.lang.ClassCastException: java.util.Vector
at org.test.search.FirstActivity.loginMethod(FirstActivity.java:74)
 at org.test.search.FirstActivity.onCreate(FirstActivity.java:26)
 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
 at android.app.ActivityThread.access$2300(ActivityThread.java:125)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
 at android.os.Handler.dispatchMessage(Handler.java:99)
 at android.os.Looper.loop(Looper.java:123)
 at android.app.ActivityThread.main(ActivityThread.java:4627)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:521)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
 at dalvik.system.NativeStart.main(Native Method)

Пожалуйста, друзья, помогите в этом.я уже задавал свой вопрос на пост
получить данные из ksoap2 в Android

1 Ответ

7 голосов
/ 12 мая 2011

envelope.getResponse () может возвращать SoapObject или SoapPrimitive / Vector, я думаю, что вы применяете Vector к SoapObject

...