2013-04-26 2 views
0

Я начинаю как в андроидах, так и в веб-службах (на основе Java). Что я пытался сделать, так это запросить один из методов из веб-службы, который не требует каких-либо параметров для первоначального тестирования и поймать ответ в logcat или простое текстовое представление. Сначала он дал мне ошибку аутентификации, снабженный базовой аутентификации HTTP к веб-службам, как это требуется то же самое, а затемОшибка при вызове веб-сервисов

, когда я запустил программу снова начал бросать исключение после этой строки, где я звонил:

httpTransport.call(SOAP_ACTION, envelope); 

Ошибка я получаю:

04-26 10: 10: 12,945: I/System.out (322): org.xmlpull.v1.XmlPullParserException: неожиданный тип (позиция: TEXT enter code here 04-26 10: 10: 12.945: I/System.out (322): ------ = _ Part_56. .. @ 5:13 в [email protected])

Я много искал и даже искал почти все вопросы в стеке над потоком. но не нашел полезного решения, поэтому снова поднимал этот вопрос. пожалуйста, пройти через код и дайте мне знать, где я буду неправильно

package com.webservices_demo; 
import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.net.Authenticator; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.PasswordAuthentication; 
import java.net.URL; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.ParseException; 
import org.apache.http.auth.AuthScope; 
import org.apache.http.auth.UsernamePasswordCredentials; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.protocol.HTTP; 
import org.apache.http.util.EntityUtils; 
import org.ksoap2.SoapEnvelope; 
import org.ksoap2.SoapFault; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapPrimitive; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

import android.util.Base64; 
import android.util.Log; 
import android.util.Xml; 
import android.widget.TextView; 
import android.app.Activity; 
import android.os.Bundle; 
import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserFactory; 
/*working one*/ 
public class FirstAppUI extends Activity { 
private static final String SOAP_ACTION ="http://server name:portNo/ws/TririgaWS"; 
    private static final String OPERATION_NAME = "getApplicationInfo()"; 
    private static final String WSDL_TARGET_NAMESPACE = "http://ws.tririga.com/"; 
    private static final String SOAP_ADDRESS = "http://servername:port.no/ws/TririgaWS?wsdl"; 




    @Override 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     TextView textView = new TextView(this); 
     setContentView(textView); 



     /*Basic Http Authentication to connect*/ 


Authenticator.setDefault(new Authenticator(){ 
protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication("system","admin".toCharArray()); 
        }}); 
       HttpURLConnection c = null; 
       try { 
       c = (HttpURLConnection) new URL(SOAP_ADDRESS).openConnection(); 
        System.out.println("=======Connection successful======="); 
       //c.setRequestProperty("Authorization", "basic " + 
        //  Base64.encode("system:admin".getBytes(), 0)); 
       } catch (MalformedURLException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 

       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
       e1.printStackTrace(); 


       } 
       c.setUseCaches(false); 
       try { 
        c.connect(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 

       } 



     SoapObject request=new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME); 
     System.out.println("---------------This is Request sent-------------"); 
     System.out.println(request.toString()); 
     System.out.println("---------------End of Request sent--------------"); 
     SoapSerializationEnvelope envelope = new  SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.setOutputSoapObject(request); 


     HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 

     try 

     { 
      ///for testing purpose 
      System.out.println("======= Path Is=======" +httpTransport.getPath()); 
      System.out.println("======= Host Is======="+httpTransport.getHost()); 
      System.out.println("======= Port Is======="+httpTransport.getPort()); 
      System.out.println("======= String =======" +httpTransport.toString()); 
      System.out.println("======= Debugging ======="+ httpTransport.debug); 
      //end testing 



      httpTransport.call(SOAP_ACTION, envelope); 
      SoapObject result = (SoapObject)envelope.bodyIn; 

      SoapObject response = (SoapObject) envelope.getResponse(); 

      System.out.println("result is:- "+ result.toString()); 
       //FirstAppUI[] getApplicationInfo = RetrieveFromSoap(response); 

       TextView actv = (TextView)findViewById(R.id.textView); 
       //textView.setHint(getApplicationInfo[0].toString()); 



      System.out.println("=======Connection Is======="+httpTransport.getConnection()); 
      //SoapObject response = (SoapObject) envelope.getResponse(); 


      System.out.println("=======Namespace is=======" +response.getNamespace()); 
      //Object obj = envelope.bodyIn; 
     textView.setText(response.toString()); 
      System.out.println("-------------------Body In Response---------------"); 

      System.out.println(response.toString()); 

     } 

     catch (Exception exception) 

     { 

      textView.setText(exception.toString()); 
      String issue= exception.toString(); 
      System.out.println("====================================================CAUGHT"); 
      System.out.println(issue); 
      exception.printStackTrace(); 


     } 

    } 


} 

Это выход Logcat

04-26 10:10:04.454: D/installd(35): DexInv: --- BEGIN '/data/app/com.webservices_demo-2.apk' --- 
04-26 10:10:05.064: D/dalvikvm(300): DexOpt: 'Lorg/kxml2/kdom/Node;' has an earlier definition; blocking out 
04-26 10:10:05.064: D/dalvikvm(300): DexOpt: 'Lorg/xmlpull/v1/XmlPullParser;' has an earlier definition; blocking out 
04-26 10:10:05.064: D/dalvikvm(300): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserException;' has an earlier definition; blocking out 
04-26 10:10:05.064: D/dalvikvm(300): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserFactory;' has an earlier definition; blocking out 
04-26 10:10:05.064: D/dalvikvm(300): DexOpt: 'Lorg/xmlpull/v1/XmlSerializer;' has an earlier definition; blocking out 
04-26 10:10:05.094: D/dalvikvm(300): DexOpt: 'Lorg/kxml2/io/KXmlParser;' has an earlier definition; blocking out 
04-26 10:10:05.094: D/dalvikvm(300): DexOpt: 'Lorg/kxml2/io/KXmlSerializer;' has an earlier definition; blocking out 
04-26 10:10:05.094: D/dalvikvm(300): DexOpt: 'Lorg/kxml2/kdom/Document;' has an earlier definition; blocking out 
04-26 10:10:05.094: D/dalvikvm(300): DexOpt: 'Lorg/kxml2/kdom/Element;' has an earlier definition; blocking out 
04-26 10:10:05.544: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParserException;' 
04-26 10:10:05.674: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParserException;' 
04-26 10:10:05.714: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:05.714: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:05.725: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/kxml2/io/KXmlSerializer;' 
04-26 10:10:05.725: D/dalvikvm(300): DexOpt: not verifying 'Lorg/kxml2/kdom/Node;': multiple definitions 
04-26 10:10:05.734: D/dalvikvm(300): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParser;': multiple definitions 
04-26 10:10:05.734: D/dalvikvm(300): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParserException;': multiple definitions 
04-26 10:10:05.734: D/dalvikvm(300): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParserFactory;': multiple definitions 
04-26 10:10:05.734: D/dalvikvm(300): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlSerializer;': multiple definitions 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.104: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.114: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;' 
04-26 10:10:06.124: D/dalvikvm(300): DexOpt: not verifying 'Lorg/kxml2/io/KXmlParser;': multiple definitions 
04-26 10:10:06.124: D/dalvikvm(300): DexOpt: not verifying 'Lorg/kxml2/io/KXmlSerializer;': multiple definitions 
04-26 10:10:06.124: D/dalvikvm(300): DexOpt: not verifying 'Lorg/kxml2/kdom/Document;': multiple definitions 
04-26 10:10:06.124: D/dalvikvm(300): DexOpt: not verifying 'Lorg/kxml2/kdom/Element;': multiple definitions 
04-26 10:10:06.124: I/dalvikvm(300): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParserException;' 
04-26 10:10:06.164: D/dalvikvm(300): DexOpt: load 167ms, verify+opt 1058ms 
04-26 10:10:06.244: D/installd(35): DexInv: --- END '/data/app/com.webservices_demo-2.apk' (success) --- 
04-26 10:10:06.244: W/PackageManager(61): Code path for pkg : com.webservices_demo changing from /data/app/com.webservices_demo-1.apk to /data/app/com.webservices_demo-2.apk 
04-26 10:10:06.244: W/PackageManager(61): Resource path for pkg : com.webservices_demo changing from /data/app/com.webservices_demo-1.apk to /data/app/com.webservices_demo-2.apk 
04-26 10:10:06.244: D/PackageManager(61): Activities: com.webservices_demo.FirstAppUI com.webservices_demo.EarthQuake com.webservices_demo.Webservices_Demo 
04-26 10:10:06.254: I/ActivityManager(61): Force stopping package com.webservices_demo uid=10037 
04-26 10:10:06.364: I/installd(35): move /data/dalvik-cache/[email protected]@[email protected] -> /data/dalvik-cache/[email protected]@[email protected] 
04-26 10:10:06.364: D/PackageManager(61): New package installed in /data/app/com.webservices_demo-2.apk 
04-26 10:10:06.484: I/ActivityManager(61): Force stopping package com.webservices_demo uid=10037 
04-26 10:10:06.534: D/dalvikvm(168): GC_EXPLICIT freed 305K, 52% free 2778K/5703K, external 1625K/2137K, paused 52ms 
04-26 10:10:06.604: I/ActivityManager(61): Start proc com.svox.pico for broadcast com.svox.pico/.VoiceDataInstallerReceiver: pid=301 uid=10009 gids={} 
04-26 10:10:06.634: W/RecognitionManagerService(61): no available voice recognition services found 
04-26 10:10:06.854: I/ActivityThread(301): Pub com.svox.pico.providers.SettingsProvider: com.svox.pico.providers.SettingsProvider 
04-26 10:10:07.104: D/dalvikvm(61): GC_EXPLICIT freed 950K, 46% free 4569K/8455K, external 4373K/7373K, paused 108ms 
04-26 10:10:07.114: I/installd(35): unlink /data/dalvik-cache/[email protected]@[email protected] 
04-26 10:10:07.134: D/AndroidRuntime(216): Shutting down VM 
04-26 10:10:07.144: D/dalvikvm(216): GC_CONCURRENT freed 100K, 72% free 293K/1024K, external 0K/0K, paused 2ms+1ms 
04-26 10:10:07.154: D/jdwp(216): adbd disconnected 
04-26 10:10:07.184: I/dalvikvm(216): JNI: AttachCurrentThread (from ???.???) 
04-26 10:10:07.184: I/AndroidRuntime(216): NOTE: attach of thread 'Binder Thread #3' failed 
04-26 10:10:07.774: D/AndroidRuntime(314): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<< 
04-26 10:10:07.774: D/AndroidRuntime(314): CheckJNI is ON 
04-26 10:10:08.344: D/AndroidRuntime(314): Calling main entry com.android.commands.am.Am 
04-26 10:10:08.364: I/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.webservices_demo/.FirstAppUI } from pid 314 
04-26 10:10:08.394: I/ActivityManager(61): Start proc com.webservices_demo for activity com.webservices_demo/.FirstAppUI: pid=322 uid=10037 gids={3003} 
04-26 10:10:08.404: D/AndroidRuntime(314): Shutting down VM 
04-26 10:10:08.414: D/dalvikvm(314): GC_CONCURRENT freed 101K, 69% free 318K/1024K, external 0K/0K, paused 1ms+2ms 
04-26 10:10:08.414: D/jdwp(314): adbd disconnected 
04-26 10:10:08.494: I/dalvikvm(314): JNI: AttachCurrentThread (from ???.???) 
04-26 10:10:08.494: I/AndroidRuntime(314): NOTE: attach of thread 'Binder Thread #3' failed 
04-26 10:10:09.084: I/System.out(322): executing requestGET http://192.168.1.70:8001/ws/TririgaWS HTTP/1.1 
04-26 10:10:11.920: I/System.out(322): ---------------------------------------- 
04-26 10:10:11.920: I/System.out(322): HTTP/1.1 200 OK 
04-26 10:10:11.920: I/System.out(322): [email protected] 
04-26 10:10:11.925: I/System.out(322): Response content length: 47 
04-26 10:10:11.935: I/System.out(322): =======Connection successful======= 
04-26 10:10:12.335: I/System.out(322): ---------------This is Request sent------------- 
04-26 10:10:12.335: I/System.out(322): getApplicationInfo(){} 
04-26 10:10:12.335: I/System.out(322): ---------------End of Request sent-------------- 
04-26 10:10:12.365: I/System.out(322): ======= Path Is=======/ws/TririgaWS 
04-26 10:10:12.365: I/System.out(322): ======= Host Is=======192.168.1.70 
04-26 10:10:12.365: I/System.out(322): ======= Port Is=======8001 
04-26 10:10:12.365: I/System.out(322): ======= String [email protected] 
04-26 10:10:12.365: I/System.out(322): ======= Debugging =======false 
04-26 10:10:12.945: I/System.out(322): ====================================================CAUGHT 
04-26 10:10:12.945: I/System.out(322): org.xmlpull.v1.XmlPullParserException: unexpected type (position:TEXT 
04-26 10:10:12.945: I/System.out(322): [email protected]:13 in [email protected])* 
04-26 10:10:12.945: W/System.err(322): org.xmlpull.v1.XmlPullParserException: unexpected type (position:TEXT 
04-26 10:10:12.955: W/System.err(322): [email protected]:13 in [email protected]) 
04-26 10:10:12.955: W/System.err(322): at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273) 
04-26 10:10:12.955: W/System.err(322): at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:1413) 
04-26 10:10:12.955: W/System.err(322): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:126) 
04-26 10:10:12.955: W/System.err(322): at org.ksoap2.transport.Transport.parseResponse(Transport.java:96) 
04-26 10:10:12.955: W/System.err(322): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:189) 
04-26 10:10:12.955: W/System.err(322): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95) 
04-26 10:10:12.955: W/System.err(322): at com.webservices_demo.FirstAppUI.onCreate(FirstAppUI.java:196) 
04-26 10:10:12.955: W/System.err(322): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-26 10:10:12.955: W/System.err(322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
04-26 10:10:12.965: W/System.err(322): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
04-26 10:10:12.965: W/System.err(322): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-26 10:10:12.965: W/System.err(322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
04-26 10:10:12.965: W/System.err(322): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-26 10:10:12.965: W/System.err(322): at android.os.Looper.loop(Looper.java:123) 
04-26 10:10:12.965: W/System.err(322): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-26 10:10:12.965: W/System.err(322): at java.lang.reflect.Method.invokeNative(Native Method) 
04-26 10:10:12.965: W/System.err(322): at java.lang.reflect.Method.invoke(Method.java:507) 
04-26 10:10:12.965: W/System.err(322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-26 10:10:12.965: W/System.err(322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-26 10:10:12.965: W/System.err(322): at dalvik.system.NativeStart.main(Native Method) 
+0

Проверить требуемые права доступа (Internet) в AndroidManifest.xml – SKK

+0

Спасибо за предложение, но разрешение уже указано.else, он бы выбросил java.net.SocketException: Permission Denied. – Mangesh

ответ

-1

Попробуйте этот код

try { 
       HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

       androidHttpTransport.call(SOAP_ACTION, envelope); 

       SoapObject result = (SoapObject) envelope.bodyIn; 

       if (result != null) { 

       tvResult.setText(result.getProperty0).toString()); 

       } else { 

        tvResult.setText("No Output"); 
       } 

      } catch (Exception e) { 
       // TODO: handle exception 
       e.printStackTrace(); 
       tvResult.setText(e.toString()); 
      } 

надеюсь, что это поможет полностью.

+0

Спасибо за предложение. Но это не помогло ни – Mangesh

+0

, пожалуйста, проверьте свои URL-адреса, ссылки SoapAction, NAMESPACE, SOAP_ADDRESS правильно вставлены в константы – khurram

+0

, если я попытаюсь проверить URL-адрес с SOAPUI, он дает мне правильный вывод. что я не уверен в SOAP_ACTION.что это должно быть точно – Mangesh

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