Я пытаюсь потреблять SOAP
WebServices в Android
и писать собственный код для этого: Ниже мой кодAndroid Unmarshalling Error: неожиданный элемент (uri: «url», local: «scope»). Ожидаемые элементы < {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addSoapObject(getScopeBean());
request.addSoapObject(getLocaleBean());
request.addProperty("commercialRef","somevalidvalue");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
String xsd = envelope.XSD;
Log.e("envelop ", xsd);
envelope.setOutputSoapObject(request);
envelope.implicitTypes = true;
envelope.setAddAdornments(false);
HttpTransportSE http = new HttpTransportSE(URL, 2000);
http.call(SOAP_ACTION, envelope);
String requestDump = http.requestDump;
Log.e("requestDump", requestDump);
String responseDump = http.responseDump;
Log.e("responseDump", responseDump);
Мой запрос XML является
<?xml version="1.0"?>
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:d="http://www.w3.org/2001/XMLSchema"
xmlns:c="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:v="http://schemas.xmlsoap.org/soap/envelope/" >
<v:Header /><v:Body>
<someMethodname xmlns="NAMESPACE" >
<scope>
<brand>
somevalidname
</brand>
<country>
WW
</country>
<project>
somevalidname
</project>
</scope>
<locale>
<isoCountry>
GB
</isoCountry>
<isoLanguage>en</isoLanguage>
</locale>
<commercialRef>somevalidname</commercialRef>
</getProductDetailByCommercialRef>
</v:Body>
</v:Envelope>
и ответ
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" >
<soap:Body><soap:Fault><faultcode>soap:Client</faultcode>
<faultstring>
Unmarshalling Error: unexpected element
(uri:"http://", local:"scope").
Expected elements are <{}rangeId>,<{}scope>,<{}commercialRef>,<{}locale>
</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Я попытался исправить это м 3 дня и без успеха. Может ли кто-нибудь помочь в его устранении. Мне было бы здорово. В soap ui wsdl отлично работает. В файл WSDL метод
<wsdl:message name="getXXXXXXXXX">
<wsdl:part element="tns:getProductDetailByCommercialRef" name="parameters" />
Я подтвердил имяМетод, пространство имен, URL, который я дал правильно. Если кто-то получает то, что я делаю неправильно. Пожалуйста, предложите.
Спасибо, Android разработчика