转载:http://blog.csdn.net/henreash/article/details/2261134 本文档向你展示如何使用RemObjects(Delphi版)创建第一个服务.读了本文档后你可以继续读相关文档: RO06:如何创建RemObjects客户端(Delphi版). 你可以把本文档当作一个范例并牢记创建步骤. 本文相关项目完整代码在文档底部有下载连接. 选择服务类型 第一步主要是选择一个你要创建的服务类型.
如下图 (随着Delphi,Windows版本不同可能有些出入): 本例我们创建一个简单的"VCL Standalone" 可执行服务.这是最简单的一种服务,不需要任何Web服务和其他配置就可以运行.
选择项目选项 接下来的对话框中输入项目的基础选项如项目名称和项目路径. 关于更多有关Message类型信息请见RO07: Smart Services
RemObjects SDK 代码生成器 按F9后会弹出一个对话框,选择提供服务的类. 注意:
完成后,项目将生成一个新单元(如下图),并且屏幕下部的出现一个小窗口(D6)或在消息面板上显示生成代码信息(D7). 在后台,RemObjects预处理程序分析NewLibrary.rodl 文件 (在创建项目的时候生成的). 预处理程序寻找没有实现单元的服务,并为其创建实现单元. 生成了三个文件: 1. NewLibrary_Invk.pas: 包含所有内部调用代理.在每次编译都重新生成,只用于服务端. 2. NewLibrary_Intf.pas: 用于服务端和客户端的服务接口. 再次提示,这是根据需要自动生成的文件,在上面所做的修改可能会被覆盖. 3. NewService_Impl.pas: 包含服务的实现,在此输入我们的逻辑代码.与其它两个文件不同这个文件不自动生成.如果你更新了服务 (例如通过菜单RemObjects SDK | Edit Service Library如下图), 编译后将报缺少方面的错误.将接口的声明函数拷贝到类中并按下Ctrl+Shift+C自动增加实现部分.
function TNewService.Sum(const A: Integer; const B: Integer): Integer; begin result := A + B; end; function TNewService.GetServerTime: DateTime; begin result := Now; end;
测试服务 现在服务已经运行了,我们来测试一下. 打开IE浏览器录入如下URL: http://localhost:8099/BIN 将出现XML文档: OK!服务成功运行并可以用于RO客户端了.我们只是进行了对实际逻辑的编码. 注意:如果你的浏览器没有显示上图的XML文档,或许忘记将ROServer.Active设置为TRUE或输入URL错误了. 附加 打开项目目录,可以看到NewLibrary.rodl文件,其中内容由Service Builder工具维护.
RemObjects 的 Service Builder 将启动并加载NewLibrary.rodl 文件. 在这个工具中可以向服务中增加方法并自动修改NewLibrary.rodl文件. Sum 和GetServertime方法是每个RO服务项目生成时自动产生的默认方法. 提示: 这些方法是RO早期为便于新手学习加入的.你如果想修改这个行为也很简单. 在Windows资源管理器中,找到../ RemObjects SDK for Delphi/Templates 目录双击$svclibname.rodl 文件.将调用Service Builder,从中删除掉这两个方法. 现在需要创建调用这个服务的客户端了,见RO06.
提示:向导已经为我们自动的将Message组件关联到了ROServer组件的Disneypatchers集合属性中了.如果要添加不同的Message组件,要保证将其关联到ROServer的Dispatcher项: 注意: 基于本文档的目的,我们保持高级项目选项的默认设置.
通常,你希望直接创建客户端应用程序,但是你也需要知道如何创建简单的客户端应用,相应的我们将在RO06中展示.
激活服务 项目已经创建,主窗体显示在Delphi IDE中. 在窗体的上面有两个按照我们在向导中选择的Server CLASS和Message CLASS而自动生成的控件.
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论