По предмету.
Я запускаю веб-приложение grails, выставляя сервис как веб-сервис через плагин Axis2 (затем он использует Apache Axis2).
Все хорошо, за исключением того, что Android, работающий с ksoap2, не работает при обработке ответа http.
Я получаю сообщение об освобождении:
org.xmlpull.v1.XmlPullParserException: неожиданный токен (позиция: TEXT --MIMEBoundaryur ... @ 4:13 в java.io.InputStreamReader@40fdd958)
Теперь я немного исследовал и обнаружил, что мое веб-приложение, отвечая на вызов веб-службы в кодировке мыла, возвращает данные как multipart/related
.
Точнее, он возвращает что-то
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: multipart/related;
boundary=MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545; type="text/xml";
start="<0.urn:uuid:AC5A47086C51CDF4581329104304546@apache.org>"
Date: Mon, 13 Feb 2012 03:38:24 GMT
Connection: close
--MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545
Content-Type: text/xml; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-ID: <0.urn:uuid:AC5A47086C51CDF4581329104304546@apache.org>
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:sayHelloResponse
xmlns:ns="http://api.account.mycompany.com">
<ns:return>Just a test... Hello John Doe!
</ns:return>
</ns:sayHelloResponse>
</soapenv:Body>
</soapenv:Envelope>
--MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545--
Так что, очевидно, XmlPullParser завершается ошибкой, когда доходит до:
--MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545
Возможно, он ожидал начала XML, но получил заголовки MOTM.
Теперь вопрос ... Как решить эту проблему?