截至主题。
我运行一个grails web应用程序,通过Axis2插件将服务公开为Web服务(然后使用Apache Axis2)。
一切都很好,除了在处理http响应时运行ksoap2的Android失败。
我得到的执行信息是:
org.xmlpull.v1.XmlPullParserException:意外的令牌(位置:TEXT --MIMEBoundaryur ...在java.io.InputStreamReader@40fdd958中的@ 4:13)
现在,我调查了一下,发现我的网络应用程序在回复肥皂编码的网络服务调用时,将数据返回为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标题。
现在,问题是......如何解决这个问题?