2014-01-15 3 views
1

я получаю сообщение об ошибке в следующем методе:XmlPullParserException позиция Неожиданный маркер: TEXT

public ResultUsers[] getContacts(java.lang.String user_id, java.lang.String offset, java.lang.String limit, 
     java.lang.String phone_contacts) throws SoapFault { 
    SoapObject _client = new SoapObject("urn:UserProfile", "GetContacts"); 
    _client.addProperty("user_id", user_id); 
    _client.addProperty("offset", offset); 
    _client.addProperty("limit", limit); 
    _client.addProperty("phone_contacts", phone_contacts); 
    SoapSerializationEnvelope _envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    _envelope.bodyOut = _client; 
HttpTransportSE _ht = new HttpTransportSE(Configuration.getWsUrl()); // line 378 
     try { 
      _ht.call("urn:UserProfile#GetContacts", _envelope); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (XmlPullParserException e) { 
      e.printStackTrace(); 
     } 
     return ResultUsers.toArray((Vector<SoapObject>) _envelope.getResponse()); 
} 

Вот выход LogCat:

org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT 
    Fatal error: [email protected]:1 in [email protected]) 
     at org.kxml2.io.KXmlParser.next(KXmlParser.java) 
     at org.kxml2.io.KXmlParser.next(KXmlParser.java) 
     at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java) 
     at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127) 
     at org.ksoap2.transport.Transport.parseResponse(Transport.java:118) 
     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:253) 
     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:116) 
     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:111) 
     at com.virtulos.virtulosandroid.soap.userprofile.ServerServicePortType.getContacts(ServerServicePortType.java:375) 
     at com.virtulos.virtulosandroid.model.db.service.ContactService.getContactsFromCloud(ContactService.java:79) 
     at com.virtulos.virtulosandroid.task.LoadContactsTask.doInBackground(LoadContactsTask.java:58) 
     at com.virtulos.virtulosandroid.task.LoadContactsTask.doInBackground(LoadContactsTask.java:1) 
     at android.os.AsyncTask$2.call(AsyncTask.java) 
     at java.util.concurrent.FutureTask.run(FutureTask.java) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java) 
     at java.lang.Thread.run(Thread.java) 
    null 
    java.lang.NullPointerException 
     at org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerializationEnvelope.java:521) 
     at com.virtulos.virtulosandroid.soap.userprofile.ServerServicePortType.getContacts(ServerServicePortType.java:387) 
     at com.virtulos.virtulosandroid.model.db.service.ContactService.getContactsFromCloud(ContactService.java:79) 
     at com.virtulos.virtulosandroid.task.LoadContactsTask.doInBackground(LoadContactsTask.java:58) 
     at com.virtulos.virtulosandroid.task.LoadContactsTask.doInBackground(LoadContactsTask.java:1) 
     at android.os.AsyncTask$2.call(AsyncTask.java) 
     at java.util.concurrent.FutureTask.run(FutureTask.java) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java) 
     at java.lang.Thread.run(Thread.java) 

Что я нашел на Google, что есть 3-х символов в начале ответа, который обычно не известен парсером в android, и поэтому он сбой. Но я не уверен, как мне избавиться от этих символов, если это проблема, как я ее исправить, учитывая, что мне нужно напрямую возвращать результаты. Любая помощь приветствуется.

+0

У меня такая же ошибка. Вы нашли решение. – DearDhruv

+0

нет, кто-то еще закончил этот проект. Если вы найдете какое-либо решение, отправьте его здесь, пожалуйста, – FilipLuch

ответ

0

Получить WSDL URL Пример: http://abc.xyz/ws/User.wsdl

Затем найти имя службы; Вероятно, это будет в конце страницы.

например:

<wsdl:service name="servicename"> 
     <wsdl:port name="userport" binding="tns:usrbinding"> 
      <soap:address 
       location="http://abc.xyz/soap/ws/ServerWSDL.php" /> 
     </wsdl:port> 
</wsdl:service> 

Расположение Ваш главный URL; вы должны установить заголовок для этого URL-адреса. и все сделано.

ПРИМЕЧАНИЕ. Не изменяйте URL-адрес soapAction.

+0

перед вызовом webservice u нужно проверить namespace.its так же, как URL-адрес службы –

Смежные вопросы