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

Linux下,利用gSoap生成了WebService客户端,在进行开发时遇到了如下几个问题,其中,gSoap的版本号是2.7.15,但由于没有重新编译,而是使用工具包自带的wsdl2hsoapcpp2,其版本号为2.7.9l

1. 编译时提示:函数soap_save_blocksoap_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.cppstdsoap2.h关于TCP连接部分的源代码,从而解决了该问题。

你可能感兴趣的:(linux,webservice,null,嵌入式,SOAP,程序开发)