Symbian学习笔记(21) - 原来还有这个工具wsdl2cpp,访问webservice也很简单
来源:互联网 发布:java技术面试题 编辑:程序博客网 时间:2024/04/29 17:02
在论坛里看到有人问使用wsdl2cpp生成代码,才知道原来symbian提供了一个辅助工具来生成webservice client的代码,比起我上回折腾的自己参考AddressBook例子做的webservice客户端要简单多了,类似于gSOAP的使用。
首先,去forum.nokia.com.cn搜一下WSDL-to-C++_for_S60,这是用于Carbice Vs的工具,不过也可以独立安装,用命令行来生成所需要的代码。下载安装即可。
第二步,运行它的wsdl2cpp工具,得到一些源代码,不过它比gSOAP弱智一点点,不能直接给出一个wsdl的URL,所以最好将wsdl下载到本地,给它一个文件名即可:
wsdl2cpp --callback-class PServiceConsumer --include-dir ./work/inc --source-dir ./work/src pservice.wsdl
这样我们会在当前目录下的work/src和work/inc下得到它生成的头与源文件,实现的原理仍是用的Symbian内置的Web Service API来做的。将这些代码弄到工程里去。
第三步,工程里新增了代码,修改mmp,与直接使用这些API一样,总之,这个工具只是帮助我们生成了源码框架,比较方便罢了。不过额外有一点增加的地方是:
LIBRARY XmlDataBinding.lib USERINCLUDE /epoc32/include/libcUSERINCLUDE /epoc32/include/xmldatabinding
这里的xmldatabinding是新的东西,所以之前需要安装,在安装wsdl-to-c++工具后,有一个XmlDataBinding.zip在它的目录下,打开解到相应的epoc32目录里去即可。它包括了lib和一些头文件。
并且,在手机跑,应该将XmlDataBinding.sis也安装一下,从这一点看,似乎比gSOAP要麻烦一点了。
第四步,现在开始动手修改代码,很简单了。
private:// DataCHelloWSThreeAppView* iAppView;CPServiceService * iService;CPServiceConsumer * iObserver;
在头文件里增加iService和iObserver就可以了,CPP中有两步,一是初始化连接,二是远程调用方法:
//这里初始化代码CSenXmlServiceDescription *pServiceDesc = CSenXmlServiceDescription::NewLC(KServiceEndpoint, KNullDesC8()); pServiceDesc->SetFrameworkIdL(KDefaultBasicWebServicesFrameworkID); iObserver = CPServiceConsumer::NewLC(); iService = CPServiceService::NewLC(*iObserver,*pServiceDesc);_LIT(KStr,"Init service.");LOG(KStr);//这里远程调用代码if(iObserver->iStatus==KSenConnectionStatusReady){RHelloWorld aHello;RHelloWorldResponse aHelloResp;TRAPD(error,aHelloResp=iService->HelloWorldL(aHello));if(error){RDebug::Printf("error %d",error);}TBuf<64> buf;buf.Copy(aHelloResp.iHelloWorldResult);_LIT(KStr,"result is %S");LOG_FORMAT((KStr,buf));}
这样就好了,当然析构时要删除这些成员变量。
总结一下,其实我用三种方法来调用web service,都是最简单的HelloWorld,比较而言,还是gSOAP比较方便。
- Symbian学习笔记(21) - 原来还有这个工具wsdl2cpp,访问webservice也很简单
- wsdl2cpp,访问webservice也很简单
- 原来还有这个功能啊!!!
- 原来HQL也很简单
- webservice简单学习笔记
- 原来〈hr〉还有这个用处,直接用作虚线
- VB.net中的析构函数原来还有这个嗜好......
- 原来射极跟随器还有这个应用
- 渐渐开始明白,原来汇编也很简单
- Oracle,SqlServer,Access数据库通用访问类设计 ---这个也太简单了
- 原来我也很富有
- WebService开发笔记 2 -- VS 2005 访问WebServcie更简单
- WebService开发笔记(二)-- VS2005访问WebServcie更简单
- symbian学习笔记一
- symbian学习笔记二
- Symbian 学习笔记
- Symbian开发学习笔记
- symbian学习笔记
- 对ibatis分页功能的改进(2)
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '/register' is defined
- python和py2exe中使用中文
- 用C#实现XML文件的读取
- 开篇!
- Symbian学习笔记(21) - 原来还有这个工具wsdl2cpp,访问webservice也很简单
- 千万不要死于无知(转)
- 创建Google关键词广告的12高招
- 观看影片《硅谷传奇》
- 最强的日历控件
- php环境配置 IIS PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
- bitmapdata.draw bug 一枚
- 功能点估算法(一)
- 使用Limit参数优化MySQL查询