关闭

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

标签: linuxgsoapwebservice
549人阅读 评论(0) 收藏 举报


一、建立/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文件(不可以删整个目录),然后在纠正错误的前提下重新编译即可;

 

 

 

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:555次
    • 积分:17
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档