现在的位置: 首页 > 综合 > 正文

使用 RemObjects SDK 建立 WebService 应用

2013年03月28日 ⁄ 综合 ⁄ 共 1814字 ⁄ 字号 评论关闭

终于又静下心来写了个图文教程,这几天事情太多,头脑混乱,截图都不会了。。。。大家还是见好就收吧。。

本文为本站原创,转载请注明出处! By Rarnu 2007-7-25

1. 准备工作

  首先下载 RemObjects SDK,我用的是 4.0.19 版,可以安装在 Delphi2007 中。用其他版本 delphi 的也可以下载 4.0.19,用起来效果一样的。需要注意的是,RemObjects 是共享的框架,如果不注册,那么编译后的程序不能脱离 delphi 的 IDE 单独运行。注册的方法是去 RemObjects 官方网站(http://www.remobjects.com/shop/)下购买定单,付费后会收到 License 文件(别问我要 License,我不会给的)。

2. 创建 VCL Standalone

  点击 File->New->Other,选择 RemObjects SDK,在右边会显出可用的框架,选择 VCL Standalone。会弹出如下窗口:

  点击 Advanced Project Options,详细的设置一下工程。
  然后点击 OK 保存设置,然后创建工程。在 Delphi2007 中建工程时,可能会发生工程组错误的问题,不需要理会,直接将建好的2个工程打开为一个工程组,如图:
  将当前工程设为 DemoService.exe,然后点击主菜单上的 RemObjects->Edit Service Library,启动服务编辑器。启动时,如果你没有注册,它将提示你需要注册,并且启动 30 天试用的倒计时。
  这里我添加 2 个方法,一个方法用于返回 hello world,另一个方法用于返回服务器端当前的时间。设置完成后,关闭服务编辑器。
  现在编译一下工程,系统会提示使用哪种服务器类型,这里我们选择 Simple Object。
  编译过之后,系统会生成 2 个新的文件,分别是 Intf 和 Impl,也就是接口和实现,这与 Delphi 自带的 WebService 完全一样。在 Impl 中,编写两个方法的实现代码:
  再次编译,完成后启动服务器。如图所示,当然你也可以自行设计服务器的界面,或是直接让它在后台运行。此处就不再多说了。
  现在服务器已经完成了,下面就要开发一个客户端,来调用服务器端提供的服务。将工程组的活动工程切换为 DemoServiceClient,然后点击 RemObjects->Import SOAP Web Service,导入 WSDL。这个导入工具也需要 License,不然也只能使用 30 天。
  看到此界面后,点击 Import 按钮,如果想看一下 WSDL 的具体内容,可以点击 View WSDL。导入完成后,会弹出对话框,提示是否将 ClientIntf 加入工程,选择 yes 即可。生成的 ClientInft 如下:
  这个文件是系统自动生成的,若没有特殊情况,不要对它进行修改,不然改错了就不能访问服务器了。
  按下图进行客户端界面的设计:
  最下面的三个控件是系统框架自动生成的,不需要自己拖控件。如果新建项目时没有建立客户端,则需要手动拖入这三个控件。
  为 2 个按钮编写 OnClick 事件代码:
  IDemoService 是服务器提供的,通过此接口能访问到服务器,然后通过 CoDemoService 对象对接口进行填充。CoDemoService 对象将在服务器端进行 ActiveX 初始化,客户端不需要对初始化做任何考虑。调用远程方法时,必须用 try 结构,如果服务器不存在,系统将抛出异常。调用方法结束后,必须将 IDemoService 对象置 nil。
3. 执行程序
  启动服务器和客户端,在文本框内输入字串,点击 Hello 按钮。
4. 总结
  至此,一个最简单的 RemObjects 应用就完成了,其实真正写的代码没几行,大部分的代码都是框架生成的,而且生成的代码不需要进行什么大的修改。
  使用 RemObjectds SDK 可以开发出各种类型的 Server,提供多种不同的服务,大家可以自行研究。由于 RemObjects 文档不完善,好多高级功能还是只能通过看 Demo 来掌握,我将于最近抽一点时间,整理一些有用的文档放上来。
 
5. 程序下载
  本程序的源码,点击下载
  程序下载空间由点点提供,特此感谢!(点点的blog:http://hi.baidu.com/18moon)
  注意:Bin 目录下的为编译好的程序,Source 下为代码。Bin 下的程序均能脱离 Delphi 独立运行

抱歉!评论已关闭.