Android XStream Object Java WebService - PullRequest
       4

Android XStream Object Java WebService

2 голосов
/ 22 декабря 2011

У меня запущен webservice, и я хочу вызвать метод веб-сервиса и должен показать результат в TextView на мобильном телефоне. Веб-сервис работает очень хорошо, для тестирования я могу получить string response от веб-сервиса. Но я хочу получить Xstream Object.
Я создал Xstream object, и он работает локально.

Когда я вызываю метод webservice для получения объекта xstream, используя KSOAP2, я получаю исключение java.lang.classcastexception:org.ksopa2.soapFault

Пожалуйста, помогите.

package com.pxr.tutorial.soap.weather;

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;  
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;   
import android.widget.TextView;
import android.widget.Toast;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;


public class Main extends Activity {


private String METHOD_NAME = "getName"; // our webservice method name
private String NAMESPACE = "http://webservice.app"; // Here package
                                                            // name in
                                                            // webservice
                                                            // with reverse
                                                            // order.
private String SOAP_ACTION = "http://webservice.app/getName"; // NAMESPACE
                                                                    // +
                                                                    // method
public TextView t; // name

private static String URL = "http://ip/WS/services/Service?wsdl";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Initialize soap request + add parameters
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("user", "user");
    request.addProperty("passwort", "passwort");

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);

    // Make the soap call.
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    t = (TextView) findViewById(R.id.resultbox);
    // this is the actual part that will call the webservice
    try {
        androidHttpTransport.call(SOAP_ACTION, envelope);
        SoapObject result=(SoapObject)envelope.bodyIn;

        //SoapObject result = (SoapObject) envelope.response();


        if (result != null) {

            XStream xstreams = new XStream(new DomDriver());
            String text = result.getProperty(0).toString();
            Testobjekt tob = (Testobjekt) xstreams.fromXML(text);
            t = (TextView) findViewById(R.id.resultbox);        
            t.setText(tob.getName());
        }

*/
    } catch (Exception e) {
        // TODO Auto-generated catch block
        t.setText("FEHLER");

    }


  }


}

При отладке я получаю сообщение об ошибке в этой строке

     SoapObject result=(SoapObject)envelope.bodyIn; 
     SoapObject result = (SoapObject) envelope.response();
...