您的位置:首页 > 运维架构 > Linux

在Linux下,利用gSoap生成的WebService客户端进行开发时遇到的问题

2010-09-20 10:40 429 查看
在Linux下,利用gSoap生成了WebService客户端,在进行开发时遇到了如下几个问题,其中,gSoap的版本号是2.7.15,但由于没有重新编译,而是使用工具包自带的wsdl2h和soapcpp2,其版本号为2.7.9l。
1. 编译时提示:函数soap_save_block和soap_push_block均缺少一个参数。
暂不清楚是由于WSDL编写不标准还是gSoap本身存在问题,不过这里只需要简单修改
一下就好了:给提示缺少参数的调用均增加一个参数NULL即可。

2. 程序运行时出现:调用WebService接口向服务端发送数据时失败,但是调用WebService
接口可以正常接收来自服务端的数据。
经查,造成该问题的直接原因是该版本的gSoap生成的WebService客户端对多参数的接
口支持存在问题,这里临时解决方法是:服务端将所有涉及到客户端向服务端发送数据
的接口均改为一个参数,这样修改后程序运行正常。
至于该问题的真正原因尚未去查,不过可参考下边的一篇文章:
http://blog.csdn.net/yufeng20345390/archive/2010/06/12/5666304.aspx

3. gethostbyname函数的问题
本项目是基于嵌入式Linux来开发的,利用gSoap生成的客户端进行程序开发时发现:
程序运行时老是连不上WebService服务端,经查,发现是域名解析函数gethostbyname的
问题:域名解析失败。
原因待查。
解决办法,项目组重写了gethostbyname函数,然后利用该函数修改了文件
stdsoap2.cpp、stdsoap2.h关于TCP连接部分的源代码,从而解决了该问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐