org.xmlpull.v1.XmlPullParserException:expected:END_TAG

时间:2017-03-02 02:58:56

标签: java android web-services

我的java服务器API使用CXFClient测试是可以的:

result = CXFClient.getWebSeriveResult(wsUrl, "detailQuery", "{\"f\":\"4\",\"g\":\"1\",\"d\":\"20170301\",\"e\":\"0\",\"b\":\"510000RS\",\"c\":\"20100301\",\"a\":\"liaomalin\",\"h\":\"A1111\"}");
System.out.println(result);

结果中有数据,请参阅快照:

enter image description here

同样在SoapUI5.3.0测试也可以:

enter image description here

您看到有重新开始数据。

在android中我调用API:

private void getDataForNet(int index) {

        Map<String, String> params = new HashMap<>();
        params.put("a", "liaomalin");
        params.put("b", "510000RS");
        if (0 == type) {
            params.put("c", DateUtil.formatDate(new Date(), DateUtil.YEAR_MONTH_DATE));
          //  params.put("c", DateUtil.formatDate(new Date(), "20100301"));
        } else if (1 == type) {
           // params.put("c", DateUtil.formatDate(new Date(), DateUtil.YEAR_MONTH_NO_SYMBOL) + "01");
            params.put("c", DateUtil.formatDate(new Date(), "20100301"));

        }
        params.put("d", DateUtil.formatDate(new Date(), DateUtil.YEAR_MONTH_DATE));
        params.put("e", String.valueOf(workType));
        params.put("f", "4");
        params.put("g", String.valueOf(index));
        params.put("h", "A1111");
        String json = new Gson().toJson(params);
        Log.e("TAG", json);
        HashMap<String, String> map = new HashMap<>();
        map.put("agr0", json);
        WebServiceUtils.callWebService(this, "DataQueryService?wsdl", "detailQuery", map,
                getString(R.string.dialog_loading), false,
                new WebServiceUtils.WebServiceCallBack() {
                    @Override
                    public void callBack(String result) {
                        parseResult(result);
                    }

                    @Override
                    public void failed() {
                        DialogToastUtil.getDialogUtil().showToast(StatisticsListActivity.this,
                                getResources().getString(R.string.toast_net_check_error), Toast.LENGTH_SHORT);
                    }
                });
    }

日志数据失败:

  

03-02 10:32:03.106 14877-14877 / cn.cinsoft.smart3 D / dalvikvm:GC_FOR_ALLOC释放745K,7%免费11769K / 12580K,暂停1ms,总计2ms   03-02 10:32:03.122 14877-14877 / cn.cinsoft.smart3 E / TAG:{“f”:“4”,“g”:“1”,“d”:“20170302”,“e”: “0”, “b”: “510000RS”, “C”: “20100301”, “一个”: “liaomalin”, “H”: “A1111”}   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:org.xmlpull.v1.XmlPullParserException:expected:END_TAG {http://schemas.xmlsoap.org/soap/envelope/}正文(位置:END_TAG http:// schemas.xmlsoap.org/soap/envelope/}soap:Fault>@1:266 in java.io.InputStreamReader@4abe7810)   03-02 10:32:03.1 ** ***** - * 5110 / cn.cinsoft.smart3 W / System.err:at org.kxml2.io.KXmlParser.require(KXmlParser.java:2056)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:138)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at cn.cinsoft.smart3.utils.WebServiceUtils $ 2.run(WebServiceUtils.java:105)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:422)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at java.util.concurrent.FutureTask.run(FutureTask.java:237)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)   03-02 10:32:03.146 14877-15110 / cn.cinsoft.smart3 W / System.err:at java.lang.Thread.run(Thread.java:841)   03-02 10:32:03.174 14877-14877 / cn.cinsoft.smart3 W / EGL_emulation:eglSurfaceAttrib未实现   03-02 10:32:03.186 14877-14877 / cn.cinsoft.smart3 W / EGL_emulation:eglSurfaceAttrib未实现   03-02 10:32:03.194 14877-14877 / cn.cinsoft.smart3 D / callWebService:failednull

我不知道某个地方是否配置不正确。在java中使用其他API编写使用此方法调用是正常的,但这一次失败。

为什么使用android监视器调用此API失败?

1 个答案:

答案 0 :(得分:1)

可能是由ksoap版本引起的。

您尝试更新到较新版本。

如果你的kSoap版本低于2.4,你应该至少升级到2.5.8。