首页 > 学院 > 开发设计 > 正文

技术分析:将Web站点转换为Web服务二(组图)

2019-11-18 12:51:09
字体:
来源:转载
供稿:网友

  
 技术分析:将Web站点转换为Web服务二(组图)(图一)
  图11. 选择结果映射

  
  图12显示了方法的最终映射。注重在选择映射之后方法声明是如何形成的。这个声明说明方法带有两个String参数(name和number),并返回PhoneStatus类型。单击OK,创建映射。
  
 技术分析:将Web站点转换为Web服务二(组图)(图二)
  图12. 最终映射

  
  在例子中,我阐明了其他两个robot的相同过程,并且为其生成了方法(参见图13)。创建映射之后,余下惟一要配置的就是通信协议。这是控件与RoboServer通信时所使用的协议。图13说明了如何添加新协议。
  
 技术分析:将Web站点转换为Web服务二(组图)(图三)
  图13. 添加新协议

  
  有两种协议:socket协议和JMS协议。socket协议必须用于同步通信,而且配置起来是最简单的。只要指定运行RoboServer的机器的URL和用于通信的端口即可。JMS协议则必须用于异步通信,我在这里不讨论它。假如使用RoboSuite自带的默认脚本启动RoboServer,启动时就会在端口50000上使用socket协议,对于控件使用的socket协议,可以选择默认值(参见图14)。只要运行RoboServer与运行WebLogic Server的是同一台机器,就可以选择默认值。
  
 技术分析:将Web站点转换为Web服务二(组图)(图四)
  图14. 协议对话框

  
  完成控件配置之后,单击Create(如图15所示),控件就会生成。
  
 技术分析:将Web站点转换为Web服务二(组图)(图五)
  图15. 配置完全的控件

  
  接下来的步骤包括为每个控件方法添加操作。图16说明了如何通过向Web服务上拖拉控件方法来为Web服务添加操作。
  
 技术分析:将Web站点转换为Web服务二(组图)(图六)
  图16. 从控件方法创建操作

  
  图17显示了添加了所有操作之后的完整Web服务。
  
 技术分析:将Web站点转换为Web服务二(组图)(图七)
  图17. 完整的Web服务

  
  在测试该Web服务之前,还有一项必须配置的内容。该Web服务的搜索操作将返回一个列表,其类型为java类型java.util.List。因为WebLogic Workshop不知道列表上对象的类型,需要指定返回列表中包括哪些类型——在本例中,搜索操作包括Java类型controls.Phone.PhoneNumber。图18说明了如何指定。
  
 技术分析:将Web站点转换为Web服务二(组图)(图八)
  图18. 指定所包含的Java类型

  
  现在可以测试Web服务了。测试时,RoboServer必须运行在本地机器上(与运行WebLogic Server的机器是同一台),而且这台机器必须在端口50000上使用socket协议。所以,在测试Web服务之前,要确保运行了这样的RoboServer。当Web服务显示在Design View(或Source View)中时,请单击WebLogic Workshop中的Start图标。这将启动WebLogic Workshop Test Browser(参见图19),可以在其中测试Web服务。
  
 技术分析:将Web站点转换为Web服务二(组图)(图九)
  图19. 测试Web服务

  
  要测试add操作,只需在测试表单中为add方法输入一个姓名和一个电话号码,如图19所示,然后单击add.按钮。这将调用Web服务,然后浏览器就会显示结果,如图20所示。
  
技术分析:将Web站点转换为Web服务二(组图)(图十)
  图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文件夹中。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表