锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / GSOAP开发SOAP服务器端和客户端总结
技术子类
客户端
CurrencyConvertor:如何使用gSOAP和Webservices
GSOAP服务器返回字符串
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明出处:锐英源,www.wisestudy.cn,孙老师作品,联系电话13803810136。

GSOAP开发SOAP服务器端和客户端总结


近期开发项目需要GSOAP,研究后发现确实好用,让程序员只考虑应用层的开发,通信层和协议层都由GSOAP负责了,不过因为这个工具负责的事情多,导致使用起来也有些困惑。最大的困惑是国内网站上写的文章和GSOAP最新版本有差异,典型的是ns__开头的函数处理上,国内文章说生成的模板文件里会有,但是实际上是没有的,要自己写函数实现,头文件里有函数声明,如果没有写实现,链接时会报符号未定义,当然还有些其它问题,这里把我总结的过程分享给大家:


GSOAP使用过程


使用soapcpp2.exe生成不了代码文件


gsoap工具不生成文件

,主要原因是.h文件里的函数要有ns__前缀,没有此前缀不会有结果,另外如果还没生成,用管理员身份运行cmd,把杀毒软件关掉,再试。


soap_default_wchar


上面的接口函数在编译时会报“soap_default_wchar未定义标识符”错误。解决方法是:再定义一个带出参数,如下:
int  SoundAlarm__SetAlrmDataXml(wchar_t* pszAlrmDataXml, int *pnRetCode) 
用户如果对pnRetCode不感兴趣,不处理该返回值即可,貌似gsoap不支持只有一个参数且参数类型为wchar_t* 参数。


函数没实现


接着报service类的一个函数没有实现,接口函数没有实现。函数声明是a,但是在cpp里变成了serve_ns__a,可能要自己再写。不过看calc例子里calcProxy::add,用-i试下。自己加了函数,可以编译


GSOAP核心流程理解


加了run调用,可以用http://localhost:4567/访问一次,但再访问就不行了,也不知道如何和自己写的函数对接。
退出是下面break的问题
if (this->serve())
break;
没有传入接口名和参数,没进Dispatch,自然不行。


客户端:


rror LNK1169: 找到一个或多个多重定义的符号  gsoap
错误 3   error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义    E:\周雄-机票\singleautht2\soapclient\uafxcwd.lib(afxmem.obj)     soapclient
把生成的文件移除了就可以
换个console项目可以
客户端连接后,服务器端代码也被调用上了。
能调用后,在服务器端设置上断点,看看GSOAP生成的代码,确实很棒。

源代码

想要源代码,请联系锐英源,左侧有联系方式。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内