2012-07-19 166 views
4

我有問題從Android應用程序連接我的Web服務。也許我使用錯誤的參數?無法連接到我的Web服務

活動:

public class MainActivity extends Activity { 

final private String METHOD_NAME = "getMenuePlan"; 
final private String NAMESPACE = "http://webservice.kantine.de/"; 
final private String SOAP_ACTION = "\"" + NAMESPACE + METHOD_NAME + "\""; 
final private String URL = "http://10.0.2.2:8080/Kantine/MenuePlan?wsdl"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

    envelope.setOutputSoapObject(request); 

    HttpTransportSE httpTransport = new HttpTransportSE(URL); 
    SoapObject result = null; 


    try { 

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

    } catch (SoapFault e) { 

     Log.e("error", "", e); 

    } catch (IOException e) { 

     Log.e("error", "", e); 

    } catch (XmlPullParserException e) { 

     Log.e("error", "", e); 

    } 

    if (result != null) { 
     Log.i("Result", result.toString()); 
    } else { 
     Log.i("Result", "null"); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

}

WSDL:

<wsdl:definitions name="KantineWSImplService" targetNamespace="http://webservice.kantine.de/"><wsdl:types><xs:schema elementFormDefault="unqualified" targetNamespace="http://webservice.kantine.de/" version="1.0"><xs:element name="getMenuePlan" type="tns:getMenuePlan"/><xs:element name="getMenuePlanResponse" type="tns:getMenuePlanResponse"/><xs:complexType name="getMenuePlan"> [...] 

例外:

7-19 10:58:10.287: E/AndroidRuntime(1008): FATAL EXCEPTION: main 
07-19 10:58:10.287: E/AndroidRuntime(1008): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.wstest/com.example.wstest.MainActivity}: android.os.NetworkOnMainThreadException 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.os.Looper.loop(Looper.java:137) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at dalvik.system.NativeStart.main(Native Method) 
07-19 10:58:10.287: E/AndroidRuntime(1008): Caused by: android.os.NetworkOnMainThreadException 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.io.IoBridge.connectErrno(IoBridge.java:144) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.io.IoBridge.connect(IoBridge.java:112) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at java.net.Socket.connect(Socket.java:842) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:341) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpEngine.connect(HttpEngine.java:310) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:109) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:157) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at com.example.wstest.MainActivity.onCreate(MainActivity.java:41) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.Activity.performCreate(Activity.java:5008) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
07-19 10:58:10.287: E/AndroidRuntime(1008):  ... 11 more 

我已經添加到清單。

有什麼建議嗎?

回答

1

OMG ......爲什麼同樣的錯誤是由每一個devolper做誰在這裏調用WebService

answer.

網絡請求只能做成後臺線程ANDROID> = 3.0

+0

謝謝你,那是我的錯。 – user1537678 2012-07-19 12:08:21

相關問題