Ошибка org.xmlpull.v1.XmlPullParserException: ожидается: START_TAG - PullRequest
2 голосов
/ 15 сентября 2011

Я пытаюсь использовать ksoap2 с веб-сервисом в Android, но я думаю, что не могу получить ответ от веб-сервиса.Кто-нибудь знает, почему я получаю эту ошибку?"org.xmlpull.v1.XmlPullParserException: ожидается: START_TAG"

мой код:

public class ANDROIDsapActivity extends Activity {
    /** Called when the activity is first created. */
    private static final String NAMESPACE = "urn:sap-com:document:sap:soap:functions:mc-style";
    private static final String URL = "http://192.168.2.5:8000/sap/bc/srt/wsdl/bndg_E0DFBFD4F407C3F1A6A000155D02060A/wsdl11/allinone/ws_policy/document?sap-client=500";    
    private static final String SOAP_ACTION = "zws_get_customer";
    private static final String METHOD_NAME = "ZfGetCustomers";
        TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.textView1);

        SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
        Request.addProperty("IM_NAME","M");

        SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapEnvelope.setOutputSoapObject(Request);

        soapEnvelope.encodingStyle = SoapSerializationEnvelope.ENC2003;
        soapEnvelope.bodyOut = Request;
        soapEnvelope.dotNet = true;
        soapEnvelope.encodingStyle = SoapSerializationEnvelope.XSD;

       // AndroidHttpTransport aht = new AndroidHttpTransport(URL);
        HttpTransportSE aht = new HttpTransportSE(URL);
        aht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        List<HeaderProperty> headers = new ArrayList<HeaderProperty>();
        headers.add(new HeaderProperty("Authorization",  "basic " +
                Base64.encode("username:password".getBytes())));

        try {
            aht.call(SOAP_ACTION, soapEnvelope,headers);
            SoapPrimitive resultString = (SoapPrimitive) soapEnvelope.getResponse();
            tv.setText("Status: " + resultString);
        } catch (Exception e) {
            // TODO: handle exception
            tv.setText(e.toString());
        }
    }
}

моя полная ошибка:

org.xmlpull.v1.XmlPullParserException: expected: START_TAG  
{http://schemas.xmlsoap.org/soap/envelope/} Envelope  
(position:START_TAG <{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions  
targetNamespace='urn:sap-com:document:sapsoap:functions:mc-style'>  
@1:630 in java.io.InputStreamReader@43e50a10

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

РЕДАКТИРОВАТЬ: Я решил это.ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ МОЙ ОТВЕТ НИЖЕ КОММЕНТАРИЙ И ОТВЕТОВ.Я НАДЕЮСЬ, ЧТОБЫ ПОЛУЧИТЬ ПОМОЩЬ ДЛЯ КОГО-ТО В НЕКОТОРЫХ.

1 Ответ

1 голос
/ 20 сентября 2011

Я решил свою проблему, просто изменив стиль веб-службы. Используйте систему веб-сервиса Restful вместо SOAP, если вы хотите интегрировать SAP и Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...