java调用webservice接口,有什么比较简单的好用的方法,以及请求参数的疑问

请求参数:
String xmlData

<?xml version="1.0" encoding="UTF-8"?>
<item>
   <TYPEID>XM_ENTITY</TYPEID><!-- 数据类型 -->
   <UNITID>004139456</UNITID><!-- 请求单位代码 -->
 <PAGESIZE>10</PAGESIZE><!-- 请页面大小 -->
   <CURRENTPAGE>0</CURRENTPAGE><!-- 当前页码 -->
   <CONDITION><!-- 筛选条件 -->
      <item>
         <KEY>XMBH</KEY>
         <VALUE>XM2019015011</VALUE>
         <OPERATOR>=</OPERATOR>
      </item>
   </CONDITION>
</item>

但是我调用时返回了:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:VersionMismatch</faultcode>
            <faultstring>No namespace on "item" element.</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

嗯,没有太明白的需求:是本地写方法调,还是测试用。

测试的话:可以使用postman或者SoapUI,但是postman有时候调用有问题(只返回结果,后台不报错),SoapUI没问题。
请求参数:请求报文的话,应该是有请求头的,soap协议的报文头,你贴出来的好像只有请求报文参数。?的部分贴你的请求报文。报文需要用<![CDATA[]]包裹

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ua="http://www.mbossuac.com.cn/ua">
   <soapenv:Header/>
   <soapenv:Body>
      <ua:addBindingRelation>
         <request>?</request>
      </ua:addBindingRelation>
   </soapenv:Body>
</soapenv:Envelope>

  • 关于调用方式的话,soapUI的话,需要把你的接口列表(带有wsdl的URL)贴进去,会自动展示出接口来,然后在请求报文的<request></request>节点中插入请求报文就可以访问了

img


  • postman的调用的话,你需要这样搞一下。

img


  • 本地写方法调的话,你需要自己构建请求报文,然后自己写方法调接口访问。