Linux下gSOAP生成webservice客户端代码 的使用心得


一、建立/mnt/hgfs/Bang/gsoap-2.8/gsoap/web ,打开终端cd进入此文件夹

 

二、

../bin/linux386/wsdl2h -c -o test.h http://218.204.137.50:7003/wcf_device.svc?wsdl 生成纯c头文件test.h

如果出现错误提示:

Cannot open file 'typemap.dat'

Problem reading type map file 'typemap.dat'.

Using internal type definitions for C instead.

把gsoap-2.8/gsoap/下的typemap.dat复制到/web/下,重新执行wsdl2h工具

 

三、

../bin/linux386/soapcpp2 -C -x test.h -I/home/shkh/gsoap-2.8/gsoap/import生成client代码,不生成无用的xml文件

 

四、

新建的/web/目录下:

BasicHttpBinding_USCOREIDeviceBusiness.nsmap  

soapC.c  

soapClient.c  

soapClientLib.c  

soapH.h  

soapStub.h

6个文件复制到/项目目录/src/lib/web/

 

五、

/web/的上一级目录下2个文件:

stdsoap2.cstdsoap2.cpp(取决于makefile

stdsoap2.h

2个文件复制到对应的上一级目录

 

六、常见错误处理:

6.1.In file included from 。。。from。。。stdsoap2.h: No such file or directory

。。。: #error "GSOAP VERSION MISMATCH IN GENERATED CODE: PLEASE REINSTALL PACKAGE"

检查soapStub.h中对stdsoap2.h的引用:通常这个文件放在/web/的上一级目录,但有的gsoap版本生成的引用需在/web/下,或以#include "../stdsoap2.h"方式引用,即问题出在soapStub.h#include "stdsoap2.h"的路径少了../

 

6.2.。。。/main.d:1: *** commands commence before first target.  Stop.

make[3]: *** [dep] Error 1

make[2]: *** [dep] Error 1

make[1]: *** [dep] Error 1

make: *** [dep] Error 2

这个问题一旦发生,即使项目源码目录/src/下已纠正错误或还原历史可用版本,也仍然会一直出现;

需删除你的项目下/dep/目录下对应路径里面的一堆.d文件(不可以删整个目录),然后在纠正错误的前提下重新编译即可;

 

 

 

 

 

 

阅读更多
文章标签: linux gsoap webservice
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭