4

至于主题。

我运行一个 grails Web 应用程序,通过 Axis2 插件将服务公开为 Web 服务(然后它使用 Apache Axis2)。

一切都很好,除了运行 ksoap2 的 Android 在处理 http 响应时失败。

我得到的执行消息是:

org.xmlpull.v1.XmlPullParserException:意外令牌(位置:TEXT --MIMEBoundaryur ...@4:13 in 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 标头。

现在,问题是......如何解决这个问题?

4

0 回答 0