wsdl文档 中soap:address location、soap12:address location、http:address location的作用

最近接口提供方升级接口,导致我调用出错,在此记录下本次解决问题后的弄懂的一些知识点。

最初是cxf调用提供方接口报错:Could not send Message.

1.首先排查接口能否访问,接口提供方webservice地址:http://59.2.1.18:6901/services/MyServices?wsdl 能正常访问

2.检查wsdl文档

wsdl:service部分内容如下


       
           
       

       
           
       

       
           
       

3.定位原因。10.0.70.199:6900这个ip跟端口跟wsdl地址中的59.2.1.18:6901不一致,且网络不通。问题应该就是出在这里,提供方一开始不承认是这里导致的,wsdl文档service部分修改为如下报文后我再调用果然就没有问题了。


       
           
       

       
           
       

       
           
       

因为对方甩锅的时候,我对这三个标签的作用不很清楚,反驳不了。百度后查询到一段关于address localtion的介绍:"soap:address" is used to specify an address where the Web service can be accessed.

以及 ApacheCXFWebServiceDevelopment.pdf中的这段话wsdl文档 中soap:address location、soap12:address location、http:address location的作用_第1张图片

再仔细看wsdl文档中的localtion:http://59.2.1.18:6901/services/MyServices.MyServicesHttpSoap11Endpoint/,“http://59.2.1.18:6901/services/MyServices”拼接上?wsdl,就是webservice地址;MyServicesHttpSoap11Endpoint是port标签的name。所以推断这三个标签的作用就是“指定被访问的webservice地址”,也就是每个接口实际被调用的地址

你可能感兴趣的:(错误总结)