采用gsoap方式的webservice对接,soap绑定与http绑定的差异

c/c++ 同时被 3 个专栏收录
54 篇文章 3 订阅
4 篇文章 0 订阅

使用gsoap方式向服务器发送webservice数据时,用soupUI测试时,soap调用返回值0,表明数据发送成功

但是在项目现场对接基于同一WSDL文件的平台时,soap调用返回值12(SOAP_FAULT),通过wireshark抓包发现有如下错误信息:

Could not find an appropriate Transport Binding to invoke


错误原因在于:webservice服务器找不到对应的绑定服务,此信息的服务地址应该是:http://webservice.tvc.ehl.com

下图做了个对比,左边是http绑定方式,右边是gsoap绑定方式,http绑定,在接口标签setPassCarInfoImg里,对服务地址进行一次绑定,绑定了整个接口中的所有信息,而右边的soap绑定方式是在<SOAP-ENV>中,声明了ns1=http://webservice.tvc.ehl.com,下面的每个ns1都相当于http://webservice.tvc.ehl.com,也就是对每个字段都进行分别绑定


一般服务器会采用默认的HTTP绑定方式,此时客户端如果采用gsoap方式发生数据,则服务器无法解析数据,需要在服务器上,添加soap绑定方式

<?xml version="1.0" encoding="UTF-8"?>

<beans>

<!-- http://localhost:8080/IHEWinning/services/HIPMessageService?wsdl -->

<service xmlns="http://xfire.codehaus.org/config/1.0">

<name>HIPMessageService</name>

<serviceClass>com.ihe.service.IHIPMessageService</serviceClass>

<implementationClass>com.ihe.service.impl.HIPMessageService</implementationClass>

<!-- 默认http为true -->

<createDefaultBindings>true</createDefaultBindings>

<bindings>

<!-- SOAP 1.1 -->

<soap11Binding name="tns:HIPMessageServiceSOAP11Binding"

transport="http://schemas.xmlsoap.org/soap/http" 

allowUndefinedEndpoints="true"> 

</soap11Binding> >

<!-- SOAP 1.2 -->

<soap12Binding name="tns:HIPMessageServiceSOAP12Binding"

transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"

allowUndefinedEndpoints="true">

</soap12Binding>

</bindings>

<!-- <style>document</style> -->

<!-- <use>literal</use> -->

<!-- <scope>application</scope> -->

</service>

</beans>


  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值