同事在SoapUi中测试webservice的时候,发送报文到服务器,老是报错。查看后台,发现服务端的第一个处理方法中包含xml解析的工作,问题就出现在xml解析的过程中。错误提示如下:
The processing instruction target matching "[xX][mM][lL]" is not allowed.
从网上找到的相关资料是说XML文件头部多了空格,然后找到同事的报文,如下
<soapenv:Body>
<sqm:queryCrmServ soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<xmlString xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<![CDATA[
<?xml version="1.0" encoding="GB2312"?>
<request>
<parameters>
<parameter name ="acc_type" value = "6"/>
<parameter name ="acc_nbr" value = "18919966076"/>
<parameter name ="city_no" value = "931"/>
<parameter name ="custIMSI" value ="460030921209343"/>
<parameter name ="operation_id" value = "1311"/>
</parameters>
</request>
]]>
</xmlString>
</sqm:queryCrmServ>
</soapenv:Body>
<sqm:queryCrmServ soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<xmlString xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<![CDATA[
<?xml version="1.0" encoding="GB2312"?>
<request>
<parameters>
<parameter name ="acc_type" value = "6"/>
<parameter name ="acc_nbr" value = "18919966076"/>
<parameter name ="city_no" value = "931"/>
<parameter name ="custIMSI" value ="460030921209343"/>
<parameter name ="operation_id" value = "1311"/>
</parameters>
</request>
]]>
</xmlString>
</sqm:queryCrmServ>
</soapenv:Body>
删除<!CDATA>节点前面的空格,测试返回成功。