gsoapgsoap 生成头文件的WSDL文件怎样发布

10836人阅读
C/C++(12)
向导 1.1节中提供了gSoap开发包的下载地址
下载最新gSoap程序包
解压后在\gsoap\bin\win32(windowsXP下,其它操作系统就自己选择)下找到 编译器soapcpp2.exe 和wsdl解析工具 wsdl2h.exe,这两个文件也可以重新编译生成,用户向导中有介绍,此处就不多说,用现成的了。
进入主题:开发客户端程序
&&& (1)客户端服务端通信必不可少的一个东西:接口定义。
&&&&&&&&& gSoap使用中,需要此接口文件(也就是以后常提到的头文件)此文件可以两种方式得到:
&&&&&&&&& 1: 由现有的wsdl文件转换得到(本文使用这种方式)
&&&&&&&&& 2: 自己编写
&&& (2)两个工具的用途
&&&&&&&&& wsdl2h.exe--------名字就能看出来,完成 wsdl文件(.wsdl)到(2)头文件(.h)的转换,即由写好的wsdl格式的接口定义文件转换为C/C++格式的头文件&&&&&&&&&
&&&&&&&&& soapcpp2.exe------根据接口头文件生成应用程序客户端和服务端的框架文件(soapClient.cpp、soapServer.cpp等).
结合例子说明过程
示例:引用向导中的例子--计算器
&&&&& 由wsdl文件生成接口头文件
&&&&& wsdl文件URL地址:
&&&&& 操作流程
&&&&& a) 程序-&运行 输入cmd 启动命令行;
&&&&& b) 打开wsdl2h.exe所在文件路径(不打开的话下面输入时要记着输入全路径,不然找不着了);
&&&&& c) 输入:wsdl2h.exe -o cal.h ,
&&&&&&&& 其中
&&&&&&&&&&&& &wsdl2h.exe&,因为第二步中打了wsdl2h文件所在路径,所以此处可以直接用了,若没打开要输入所在完整路径
&&&&&&&&&&&& &cal.h&为生成的头文件名,此文件的保存位置在wsdl2h.exe同一文件目录下(要修改的话要请参照命令行语法规则,此处不多说了,有点脱离主题)&&&&&&&&&&&&
       &-o&是生成选项,表示输出,也可以增加其它选项(向导中出现 &-s -o&、&-c -o&等),具体选项说明请参照向导中介绍。
&&&&&&&&&&&& &&是wsdl文件的位置,此处是在网络地址(这个地址是可以用的),如果wsdl文件在本地的也可以,路径设置好就OK了
&&&&&&&& 注意:以上四项中每项间都有空格分开 不要手误啊!
&&&&& d) 回车 运行吧,看提示信息,没有提示故障的话,查找cal.h吧(cal.h的保存路径要记好啊,自己设置的);
&&&&& e) 得到cal.h后,打开可以看到接口定义;
&&&&& f) 在命令行中 输入:soapcpp2.exe cal.h
&&&&&&&& 其中
&&&&&&&&&&&& &soapcpp2.exe&,此处把soapcpp2.exe和wsdl2h.exe放在同一目录下了,且前面已打开此路径;
&&&&&&&&&&&& &cal.h&即由wsdl生成的头文件,此文件保存位置与soapcpp2.exe相同,故此处可这样输入,若不同还须设置文件路径;
&&&&&&&&&&&& 同样两项之间也有空格!
&&&&&&&&&&&& 可以增加控制选项如&soapcpp2.exe -C cal.h&则只生成客户端所需文件, &soapcpp2.exe -S calc.h&则只生成服务端所需文件
&&&&& g) 回车 运行。
& 如果提示找不到文件 stlvector.h,因为cal.h文件中引用了文件stlvector.h;解决方法:开发包\gsoap\import目下有此文件,复制一份到cal.h所在目录。
&&&&&&&& 注意:此过程中要检查生成的编译信息,确保没有警告信息出现(警告信息可能是gSoap不支持的内容,如果不去除,程序运行故障很难找到根本原因),另不能只看编译结果成功就认为是正确的,存在警告信息也显示为编译成功!!
&&&&& h) 编译成功,生成的框架文件保存位置与cal.h在同一目录下,包括:calc.nsmap、soapC.cpp、soapcalcObject.h、soapcalcProxy.h、soapClient.cpp、soapClient.lib
、soapH.h、soapServer.cpp、soapServer.Lib、soapStub.h和接口的请求应答xml文件。
    其中
      calc.nsmap 为命名空间定义文件;
      soapClient.cpp 客户端文件
&&&&&&&&&&& soapServer.cpp 服务端文件
&&&&&&&&&&& soapcalcProxy.h 代理用到
&&&&&&&&&&& soapStub.h 此文件中为程序中要用到的接口的声明(将cal.h中的接口经过处理后,在程序中供调用的接口)
&&&&&&&&&&& xml文件 为接口的xml格式,可以据此帮助调试等。。。
&&&&&&&&&&& 其它文件作用还没完全搞明白,向导中有说明,此处不说了以免误导^_^
&&&&& i) 编译过程完成。下面开始程序(客户端)
&&&&&&&& VC6中新建空的win32控制台工程,新建源文件calcClient.
&&&&&&&& 复制编译生成的文件(包括cal.h和stlvector)到程序目录中;
&&&&&&&& 在工程中添加文件calc.nsmap、soapC.cpp、soapClient.cpp、soapH.h、soapStub.h(使用代理添加soapcalcProxy.h);
&&&&&&&& 编译,提示无法找到文件stdsoap2.h、stdsoap2.cpp文件,这两个文件为gSoap的源码文件,在\gsoap文件夹中找到这两个文件,复制到程序目录下并添加到工程中;
&&&&&&&& 在calcClient.cpp文件中 添加语句#include &soapH.h&, #include &calc.nsmap&
///////////////////////////calcClient.cpp源码//
#include &stdio.h&
#include &soapH.h&
#include &calc.nsmap&
const char server[] = &&;
int main(int argc, char **argv)
&double a, b,
&if (argc & 4)
&{ fprintf(stderr, &Usage: [add|sub|mul|div|pow] num num\n&);
&soap_init(&soap);
&a = strtod(argv[2], NULL);
&b = strtod(argv[3], NULL);
&switch (*argv[1])
&{ case 'a':
&& soap_call_ns2__add(&soap, server, &&, a, b, result);
&case 's':
&& soap_call_ns2__sub(&soap, server, &&, a, b, result);
&case 'm':
&& soap_call_ns2__mul(&soap, server, &&, a, b, result);
&case 'd':
&& soap_call_ns2__div(&soap, server, &&, a, b, result);
&case 'p':
&& soap_call_ns2__pow(&soap, server, &&, a, b, result);
&& fprintf(stderr, &Unknown command\n&);
&& exit(0);
&if (soap.error)
&{ soap_print_fault(&soap, stderr);
&printf(&result = %g\n&, result);
&soap_destroy(&soap);
&soap_end(&soap);
&soap_done(&soap);
&return 0;
//////////////////////calcClient.cpp源码////////////////////////////////////&
其中soap_call_ns2__add、soap_call_ns2__sub、soap_call_ns2__mul、soap_call_ns2__div、soap_call_ns2__pow为接口函数,在soapStub.h中可以找到函数声明。
^_^搞定一步^_^
calcClient.cpp内容引用了gSoap开发包中例程中calc的源码,函数名略有修改动!代码中没有做接口执行故障检测,仅供参考。
这个例子中还有很多东西没写明白,比如gSoap中接口函数的定义的原则、gSoap的初始化和结束清理等。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:820715次
积分:8528
积分:8528
排名:第1716名
原创:79篇
转载:241篇
评论:49条
(1)(3)(6)(5)(14)(2)(2)(9)(4)(1)(4)(3)(1)(7)(8)(6)(2)(6)(18)(20)(10)(9)(6)(17)(15)(7)(40)(16)(9)(18)(40)(12)gSoap使用入门(1)----由wsdl文件生成头文件
gSoap使用入门(1)----由wsdl文件生成头文件
发布时间: 16:51:37
编辑:www.fx114.net
本篇文章主要介绍了"gSoap使用入门(1)----由wsdl文件生成头文件",主要涉及到gSoap使用入门(1)----由wsdl文件生成头文件方面的内容,对于gSoap使用入门(1)----由wsdl文件生成头文件感兴趣的同学可以参考一下。
文章来源:http://blog.csdn.net/zhuzhihai1988/article/details/8131370
向导 1.1节中提供了gSoap开发包的下载地址http://sourceforge.net/projects/gsoap2
下载最新gSoap程序包
解压后在\gsoap\bin\win32(windowsXP下,其它操作系统就自己选择)下找到 编译器soapcpp2.exe 和wsdl解析工具 wsdl2h.exe,这两个文件也可以重新编译生成,用户向导中有介绍,此处就不多说,用现成的了。
进入主题:开发客户端程序
&&& (1)客户端服务端通信必不可少的一个东西:接口定义。
&&&&&&&&& gSoap使用中,需要此接口文件(也就是以后常提到的头文件)此文件可以两种方式得到:
&&&&&&&&& 1: 由现有的wsdl文件转换得到(本文使用这种方式)
&&&&&&&&& 2: 自己编写
&&& (2)两个工具的用途
&&&&&&&&& wsdl2h.exe--------名字就能看出来,完成 wsdl文件(.wsdl)到(2)头文件(.h)的转换,即由写好的wsdl格式的接口定义文件转换为C/C++格式的头文件&&&&&&&&&
&&&&&&&&& soapcpp2.exe------根据接口头文件生成应用程序客户端和服务端的框架文件(soapClient.cpp、soapServer.cpp等).
结合例子说明过程
示例:引用向导中的例子--计算器
&&&&& 由wsdl文件生成接口头文件
&&&&& wsdl文件URL地址:http://www.cs.fsu.edu/~engelen/calc.wsdl
&&&&& 操作流程
&&&&& a) 程序-&运行 输入cmd 启动命令行;
&&&&& b) 打开wsdl2h.exe所在文件路径(不打开的话下面输入时要记着输入全路径,不然找不着了);
&&&&& c) 输入:wsdl2h.exe -o cal.h
http://www.cs.fsu.edu/~engelen/calc.wsdl,
&&&&&&&& 其中
&&&&&&&&&&&& &wsdl2h.exe&,因为第二步中打了wsdl2h文件所在路径,所以此处可以直接用了,若没打开要输入所在完整路径
&&&&&&&&&&&& &cal.h&为生成的头文件名,此文件的保存位置在wsdl2h.exe同一文件目录下(要修改的话要请参照命令行语法规则,此处不多说了,有点脱离主题)&&&&&&&&&&&&
       &-o&是生成选项,表示输出,也可以增加其它选项(向导中出现 &-s -o&、&-c -o&等),具体选项说明请参照向导中介绍。
&&&&&&&&&&&& &http://www.cs.fsu.edu/~engelen/calc.wsdl&是wsdl文件的位置,此处是在网络地址(这个地址是可以用的),如果wsdl文件在本地的也可以,路径设置好就OK了
&&&&&&&& 注意:以上四项中每项间都有空格分开 不要手误啊!
&&&&& d) 回车 运行吧,看提示信息,没有提示故障的话,查找cal.h吧(cal.h的保存路径要记好啊,自己设置的);
&&&&& e) 得到cal.h后,打开可以看到接口定义;
&&&&& f) 在命令行中 输入:soapcpp2.exe cal.h
&&&&&&&& 其中
&&&&&&&&&&&& &soapcpp2.exe&,此处把soapcpp2.exe和wsdl2h.exe放在同一目录下了,且前面已打开此路径;
&&&&&&&&&&&& &cal.h&即由wsdl生成的头文件,此文件保存位置与soapcpp2.exe相同,故此处可这样输入,若不同还须设置文件路径;
&&&&&&&&&&&& 同样两项之间也有空格!
&&&&&&&&&&&& 可以增加控制选项如&soapcpp2.exe -C cal.h&则只生成客户端所需文件, &soapcpp2.exe -S calc.h&则只生成服务端所需文件
&&&&& g) 回车 运行。
& 如果提示找不到文件 stlvector.h,因为cal.h文件中引用了文件stlvector.h;解决方法:开发包\gsoap\import目下有此文件,复制一份到cal.h所在目录。
&&&&&&&& 注意:此过程中要检查生成的编译信息,确保没有警告信息出现(警告信息可能是gSoap不支持的内容,如果不去除,程序运行故障很难找到根本原因),另不能只看编译结果成功就认为是正确的,存在警告信息也显示为编译成功!!
&&&&& h) 编译成功,生成的框架文件保存位置与cal.h在同一目录下,包括:calc.nsmap、soapC.cpp、soapcalcObject.h、soapcalcProxy.h、soapClient.cpp、soapClient.lib
、soapH.h、soapServer.cpp、soapServer.Lib、soapStub.h和接口的请求应答xml文件。
    其中
      calc.nsmap 为命名空间定义文件;
      soapClient.cpp 客户端文件
&&&&&&&&&&& soapServer.cpp 服务端文件
&&&&&&&&&&& soapcalcProxy.h 代理用到
&&&&&&&&&&& soapStub.h 此文件中为程序中要用到的接口的声明(将cal.h中的接口经过处理后,在程序中供调用的接口)
&&&&&&&&&&& xml文件 为接口的xml格式,可以据此帮助调试等。。。
&&&&&&&&&&& 其它文件作用还没完全搞明白,向导中有说明,此处不说了以免误导^_^
&&&&& i) 编译过程完成。下面开始程序(客户端)
&&&&&&&& VC6中新建空的win32控制台工程,新建源文件calcClient.
&&&&&&&& 复制编译生成的文件(包括cal.h和stlvector)到程序目录中;
&&&&&&&& 在工程中添加文件calc.nsmap、soapC.cpp、soapClient.cpp、soapH.h、soapStub.h(使用代理添加soapcalcProxy.h);
&&&&&&&& 编译,提示无法找到文件stdsoap2.h、stdsoap2.cpp文件,这两个文件为gSoap的源码文件,在\gsoap文件夹中找到这两个文件,复制到程序目录下并添加到工程中;
&&&&&&&& 在calcClient.cpp文件中 添加语句#include &soapH.h&, #include &calc.nsmap&
///////////////////////////calcClient.cpp源码//
#include &stdio.h&
#include &soapH.h&
#include &calc.nsmap&
const char server[] = &http://websrv.cs.fsu.edu/~engelen/calcserver.cgi&;
int main(int argc, char **argv)
&double a, b,
&if (argc & 4)
&{ fprintf(stderr, &Usage: [add|sub|mul|div|pow] num num\n&);
&soap_init(&soap);
&a = strtod(argv[2], NULL);
&b = strtod(argv[3], NULL);
&switch (*argv[1])
&{ case 'a':
&& soap_call_ns2__add(&soap, server, &&, a, b, result);
&case 's':
&& soap_call_ns2__sub(&soap, server, &&, a, b, result);
&case 'm':
&& soap_call_ns2__mul(&soap, server, &&, a, b, result);
&case 'd':
&& soap_call_ns2__div(&soap, server, &&, a, b, result);
&case 'p':
&& soap_call_ns2__pow(&soap, server, &&, a, b, result);
&& fprintf(stderr, &Unknown command\n&);
&& exit(0);
&if (soap.error)
&{ soap_print_fault(&soap, stderr);
&printf(&result = %g\n&, result);
&soap_destroy(&soap);
&soap_end(&soap);
&soap_done(&soap);
&return 0;
//////////////////////calcClient.cpp源码////////////////////////////////////&
其中soap_call_ns2__add、soap_call_ns2__sub、soap_call_ns2__mul、soap_call_ns2__div、soap_call_ns2__pow为接口函数,在soapStub.h中可以找到函数声明。
^_^搞定一步^_^
calcClient.cpp内容引用了gSoap开发包中例程中calc的源码,函数名略有修改动!代码中没有做接口执行故障检测,仅供参考。
这个例子中还有很多东西没写明白,比如gSoap中接口函数的定义的原则、gSoap的初始化和结束清理等。
本文标题:
本页链接:>> 利用gSoap生成的WebServer服务端提供Add、Sub、Mul、Div等接口
利用gSoap生成的WebServer服务端提供Add、Sub、Mul、Div等接口
所属分类:
下载地址:
testsoapcalc.rar文件大小:3.23 MB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
应用背景做为WebServer服务端,提供加、减、乘、除四个WebServer服务的接口。使用C/C++语言进行开发WebServer服务,可以练习使用开源的gSoap框架,区别于用其他语言进行的WebServer服务的开发。关键技术利用gSoap框架,根据calcsoap.h文件,生成wsdl文件和相关的 soapServer.cpp、soapC.cpp、soapH.h、soapStub.h 文件,新建 VC 2008 基于 Win32 控制台的应用程序,作为WebServer服务端,提供 ns__add、ns__sub、ns__mul、ns__div(即加、减、乘、除)四个WebServer服务的接口,并支持利用提供 calcsoap.wsdl 文件给 soap UI 测试工具进行测试。
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
512.00 B17-07-15 09:24
calcsoap.nsmap535.00 B17-07-15 10:58
calcsoap.wsdl4.83 kB17-07-15 10:58
ns.xsd537.00 B17-07-15 10:58
1.18 kB17-07-15 09:58
86.97 kB17-07-15 10:58
40.44 kB17-07-15 10:58
8.20 kB17-07-15 10:58
10.32 kB17-07-15 10:58
217.00 B17-07-15 09:58
233.00 B17-07-15 09:58
489.44 kB18-12-13 14:58
94.50 kB18-12-13 14:58
498.00 B17-07-15 09:58
1.49 kB17-07-15 10:55
testsoapcalc.ncb12.58 MB20-07-15 09:54
testsoapcalc.sln889.00 B17-07-15 09:58
testsoapcalc.suo42.00 kB20-07-15 09:54
testsoapcalc.vcproj4.44 kB17-07-15 11:00
testsoapcalc.vcproj.OEM-SVZ.Administrator.user1.40 kB20-07-15 09:54
&testsoapcalc&0.00 B20-07-15 09:43
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载testsoapcalc.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:237.126ms - init:0.1;find:1.9;t:0.6;tags:0.3;related:175.8;comment:0.2; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧&&&&gsoap将wsdl生成c++调用的文件 文档,代码
&gsoap将wsdl生成c++调用的文件 文档,代码
帖子是转的
中间有自己添加的 一部分验证和 纠错
测试代码太大 只放了生成的.cpp .h结果用图片放到文档了
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
gsoap将wsdl生成c++调用的文件 文档,代码
所需积分:3
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
gsoap将wsdl生成c++调用的文件 文档,代码
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员

我要回帖

更多关于 gsoap 发布 wsdl 的文章

 

随机推荐