سؤال

I am using Ksoap2 library for web services, and to pass complex parameters to the web service m using kvmserializable. I am getting this exception

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

i searched lot but could not find any solution, please explain why this error will occur and what am doing wrong. please help.

هل كانت مفيدة؟

المحلول 2

I found solution for my question.

Actually i was not passing the parameters for the project field. The project field was mandatory. :)

نصائح أخرى

Use new version of ksoap2 :( 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;
}

Also use for request:

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.
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top