图11. 选择结果映射 图12显示了方法的最终映射。注意在选择映射之后方法声明是如何形成的。这个声明说明方法带有两个String参数(name和number),并返回PhoneStatus类型。单击OK,创建映射。
图12. 最终映射 在例子中,我阐明了其他两个robot的相同过程,并且为其生成了方法(参见图13)。创建映射之后,余下惟一要配置的就是通信。这是控件与RoboServer通信时所使用的。图13说明了如何添加新。
图13. 添加新协议 有两种协议:socket协议和JMS协议。socket协议必须用于同步通信,而且配置起来是最简单的。只要指定运行RoboServer的机器的URL和用于通信的端口即可。JMS协议则必须用于异步通信,我在这里不讨论它。如果使用RoboSuite自带的默认脚本启动RoboServer,启动时就会在端口50000上使用socket协议,对于控件使用的socket协议,可以选择默认值(参见图14)。只要运行RoboServer与运行WebLogic Server的是同一台机器,就可以选择默认值。
图14. 协议对话框 完成控件配置之后,单击Create(如图15所示),控件就会生成。
图15. 配置完全的控件 接下来的步骤包括为每个控件方法添加操作。图16说明了如何通过向Web服务上拖拉控件方法来为Web服务添加操作。
图16. 从控件方法创建操作 图17显示了添加了所有操作之后的完整Web服务。
图17. 完整的Web服务 在测试该Web服务之前,还有一项必须配置的内容。该Web服务的搜索操作将返回一个列表,其类型为类型java.util.List。因为WebLogic Workshop不知道列表上对象的类型,需要指定返回列表中包括哪些类型——在本例中,搜索操作包括类型controls.Phone.PhoneNumber。图18说明了如何指定。
图18. 指定所包含的Java类型 现在可以测试Web服务了。测试时,RoboServer必须运行在本地机器上(与运行WebLogic Server的机器是同一台),而且这台机器必须在端口50000上使用socket协议。所以,在测试Web服务之前,要确保运行了这样的RoboServer。当Web服务显示在Design View(或Source View)中时,请单击WebLogic Workshop中的Start图标。这将启动WebLogic Workshop Test Browser(参见图19),可以在其中测试Web服务。
图19. 测试Web服务 要测试add操作,只需在测试表单中为add方法输入一个姓名和一个电话号码,如图19所示,然后单击add.按钮。这将调用Web服务,然后浏览器就会显示结果,如图20所示。
图20. 测试add操作的结果 结束语 本文介绍了一种把支持Web的应用程序转变为Web服务的快速方法。但是涉及到的不过是RoboSuite Control功能的皮毛。通常,生成的控件可以在使用其他类型控件的任何地方使用,例如在页面流、自定义控件或流程工作流中。在RoboSuite BEA WebLogic Edition中的WebLogic Workshop中还包括许多其他的特殊RoboSuite功能,我还没有介绍。这些功能包括:剪切portlet,Web服务生成,用于从JSP页面调用robot的一个标签库,以及用于编写自定义Java代码来执行robot的Java API。我将在以后的文章中陆续介绍这些更高级的功能。
代码 尽管我建议您遵从本文中的指导,创建自己的Web服务和控件,我还是在下面给出了例子代码:
Web服务:phone.jws——应该位于Web服务项目的根目录中。
控件:phone.jcx——应该位于Web服务根目录中的controls文件夹中。
robot库:phone.robotlib——应该位于Web服务根目录中的controls文件夹中。
【责编:admin】
--------------------next---------------------
阅读(126) | 评论(0) | 转发(0) |