2014-05-13 66 views
0

我正在使用Ksoap2庫進行Web服務,並使用kvmserializable將複雜參數傳遞到Web服務m。 我得到這個例外將複雜參數傳遞給Web服務

05-13 13:38:00.644: W/System.err(26739): SoapFault - faultcode: 'SOAP-ENV:Server' faultstring: 'Error Type: SYSTEM NOTICE, 
05-13 13:38:00.644: W/System.err(26739): Error Description: Undefined index: project' faultactor: 'null' detail: null 
05-13 13:38:00.644: W/System.err(26739): at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:147) 
05-13 13:38:00.655: W/System.err(26739): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:140) 
05-13 13:38:00.655: W/System.err(26739): at org.ksoap2.transport.Transport.parseResponse(Transport.java:118) 
05-13 13:38:00.685: W/System.err(26739): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:275) 
05-13 13:38:00.724: W/System.err(26739): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118) 
05-13 13:38:00.724: W/System.err(26739): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113) 
05-13 13:38:00.734: W/System.err(26739): at com.example.login2.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:86) 
05-13 13:38:00.784: W/System.err(26739): at com.example.login2.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:1) 
05-13 13:38:00.821: W/System.err(26739): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
05-13 13:38:00.821: W/System.err(26739): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
05-13 13:38:00.858: W/System.err(26739): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
05-13 13:38:00.858: W/System.err(26739): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
05-13 13:38:00.894: W/System.err(26739): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
05-13 13:38:00.894: W/System.err(26739): at java.lang.Thread.run(Thread.java:1019) 
05-13 13:38:00.924: E/ErrorResp:(26739): SoapFault - faultcode: 'SOAP-ENV:Server' faultstring: 'Error Type: SYSTEM NOTICE, 
05-13 13:38:00.924: E/ErrorResp:(26739): Error Description: Undefined index: project' faultactor: 'null' detail: null 

我搜索很多,但找不到任何解決辦法,請解釋爲什麼會出現這種錯誤,什麼做錯了。請幫忙。

回答

0

,我發現我的問題的解決方案。

其實我沒有通過項目領域的參數。 項目字段是強制性的。 :)

0

使用kso​​ap2的新版本:(http://code.google.com/p/ksoap2-android/

private SoapObject getSoapResponse(SoapObject request, String url, String soapAction) { 
    Log.d(TAG, "inside getSoapResponse"); 
    SoapObject response = null;  
    try {   
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = false; 

     Marshal dateMarshal = new MarshalDate(); 
     dateMarshal.register(envelope); 

     MarshalFloat floatMarshal = new MarshalFloat(); 
     floatMarshal.register(envelope); 

     envelope.setOutputSoapObject(request);   

     HttpTransportSE androidHttpTransport = new HttpTransportSE(url); 
     androidHttpTransport.call(soapAction, envelope); 
     response = (SoapObject)envelope.bodyIn; 
    } catch (SoapFault sfe) { 
     Log.d(TAG, " SoapFault "); 
     sfe.printStackTrace(); 
    } catch (IOException ioe) { 
     Log.d(TAG, " IOException "); 
     ioe.printStackTrace(); 
    } catch (XmlPullParserException xppe) { 
     Log.d(TAG, " XmlPullParserException "); 
     xppe.printStackTrace(); 
    } 

    return response; 
} 

而且使用要求:

SoapObject request = new SoapObject(namespace, method); 

PropertyInfo name = new PropertyInfo(); 
name.setName(RequestInfo.PROPERTY_LOGIN_TYPE); 
name.setValue("jhon"); 
name.setType(String.class); 
request.addProperty(name); 

PropertyInfo location = new PropertyInfo(); 
location.setName("Bangalore"); 
location.setValue(facebookUserName);    
location.setType(String.class); 
request.addProperty(location); 

SoapObject response = getSoapResponse(request, url, soap_action); 

if (response != null) { 
    //parse the XML file here. 
} 
+0

你能解釋爲什麼m得到那個錯誤。 –

+0

有可能是請求不封送。 –

+0

顯示我們正在使用Marshal dateMarshal = new MarshalDate(); dateMarshal.register(envelope); MarshalFloat floatMarshal = new MarshalFloat(); floatMarshal.register(envelope); –

相關問題