级别: 中级 Jason English, 技术作家, Lotus
2007 年 3 月 30 日 IBM Lotus Component Designer V6.0 可以在组件中使用 Web 服务,以便在 Internet 上和机构内部使用各种 Web 服务。本文详细描述了如何在 Lotus Component Designer 组件中使用假定的 Web 服务。
IBM Lotus Component Designer V6.0 提供了一种强大的方式,以便使用 Internet 上或机构内部中可用的几乎不限数量的各种 Web 服务。Web 服务可以执行组件的任务,例如转换货币、搜索 Internet 或返回美国邮政编码。
本文简要介绍了 Web 服务,然后在 Lotus Component Designer 的上下文中对 Web 服务进行了讨论,并浏览了在 Lotus Component Designer 组件中使用假定 Web 服务的过程。
什么是 Web 服务?
一般来说,Web 服务就是程序化接口,允许软件通过网络与其它软件进行交互。
Web 服务驻留在网络服务器上,并在 Web Services Description Language(WSDL)文档中使用 XML 加以描述。可以将 WSDL 文件存储在本地计算机上、网络上或 Universal Description, Discovery, and Integration(UDDI)目录中。
Web 服务使用方软件提供 WSDL 文件中所指定的 XML 格式的数据,然后将数据发送到 XML 文档(在 Lotus Component Designer 中称为请求文档)的 Web 服务提供方。Web Service 提供方在数据上执行服务,然后将已操作的数据返回到 XML 文档(在 Lotus Component Designer 中称为响应文档)的使用方。
在 Lotus Component Designer 中使用 Web 服务
图 1 展示了在 Lotus Component Designer 中使用 Web 服务的基本高级工作流:
- 找到要使用的 Web 服务,然后在 Lotus Component Designer 中创建用于该 Web 服务的 Web 服务适配器。
- 将其添加到页面 UI 控件,它接收输入参数并显示服务所返回的结果。
- 将组件作为 portlet 部署到 IBM WebSphere Portal。
- 在运行时,组件用户在 portlet 中输入页面上的参数。
- portlet 在 XML 请求文档中将那些参数发送到 Web 服务提供方。
- Web 服务提供方接收请求文档,在数据上执行操作,然后将 XML 结果文档返回到包含结果的 portlet。
- portlet 向用户显示结果。
图 1. 在 Lotus Component Designer 中使用 Web 服务
在组件中使用 stockInfo Web 服务
组件使用了假定的 Web 服务 stockInfo,该服务将基于用户所提供的证券报价机来返回公司信息。用户在字段中输入证券报价机 ID 并单击按钮,然后 Web 服务将返回该公司的信息,例如公司名称、报价机和当前的股票价格。
执行以下步骤来使用 Web 服务:
- 创建适配器。
- 创建设计元素。
- 将元素绑定到 Web 服务。
创建适配器
首要事情是在 Lotus Component Designer 中为 Web 服务创建适配器。
若要创建适配器,必须直接提供服务的 WSDL 位置(URL 或本地地址)或在 UDDI 目录中搜索 WSDL。stockInfo 服务是由虚拟的 Stock Prices For You 公司提供的,它的 WSDL 文件位于 Web 站点 StockPricesForYou.com 的 UDDI 目录中。
执行以下步骤来创建适配器:
-
在 Lotus Component Designer 中,选择左侧 Component Navigator 中的组件,双击 Component Options,如图 2 所示,然后选中 Show external data 选项。
图 2. Showing external data 选项
将在 Component Navigator 中显示 External Data 部分,该部分包括 Web Services Adapters 部分,如图 3 所示。
图 3. 在 Component Navigator 中显示 External Data 部分
-
双击 Web Services Adapters,然后单击 New Web Services Adapter 按钮。在 New Web Services Adapter 对话框中,为适配器命名并单击 Next。
在这里,公司将在 Web 上的 UDDI 目录中发布服务,因此在 Web Service Sources 对话框中,选择“Use a Web Service from a UDDI directory”选项,然后单击 Add。
-
在图 4 所示的 UDDI Search 对话框中,输入 UDDI 服务器的 URL 和机构名称(可选)以及服务名称,然后单击 Search。
图 4. UDDI Search 对话框
使用可用的 Web 服务及其操作来填充右侧的 Results 部分。选中 stockInfo 服务及其全部操作,然后一直单击 OK。
作为适配器创建过程的一部分,服务的 WSDL 文件副本将提取到计算机上并存储在 Eclipse 工作空间的组件目录中,例如 C:\Eclipse32\Designer\workspace\MyComponent\WebContent\WebServiceAdapter。在该目录中还有一个 Adapter 文件(包含了在计算机和 Web 服务服务器之间传递请求文档和结果文档所需的信息)和 Properties 文档(包含一些信息,例如适配器的创建者、创建日期和时间以及作者姓名)。
在 Component Navigator 中,展开 External Data - Web service Adapters 部分,然后双击打开新适配器。可以查看 Web 服务的所有相关信息,如图 5 所示,包括请求、响应和错误文档模式。(存在错误时,错误文档以 XML 格式描述所发生的事情;例如,如果所提供的数据没有采用可接受的格式,则组件可能显示文本“Please use an acceptable format in this field”。stockInfo 服务没有错误文档。)
图 5. 展开 Component Navigator 中的 Web Services Adapters 部分
通过单击位于(包含 Web 服务描述的)工作区底部的 Test Adapter 附签,可以测试操作,即编辑请求文档并单击 Invoke Web Service。
添加设计元素
应当在组件中设计页面,以便用户在字段中输入证券报价机并单击按钮,然后在页面较低位置的一组字段中显示结果信息。将使用一个编辑框以便用户输入证券报价机,一个按钮用于调用 Web 服务,以及包含编辑框的重复控件,用于显示响应数据。
重复控件包含一组其它控件,它们在页面上多次重复该组控件。在这里,用户可以输入多个证券报价机,而且不必在页面上创建多组相同控件来显示多组响应数据。重复控件允许创建一组显示控件,并且如果得到多个响应,则该控件将重复每个响应的显示。例如,如果用户键入“IBM YHOO”(YHOO 是 Yahoo! 的证券报价机),则一组数据显示用于 IBM,另一组数据显示用于 Yahoo!。
注意:有关执行 Lotus Component Designer 任务(例如创建页面或控件)的帮助,请参阅 Lotus Component Designer Help。
执行以下步骤来添加设计元素:
在组件中创建页面。
使 Web Service 适配器成为页面的数据源。
- 单击页面。
- 单击 Properties 视图中的 Data 附签。
- 单击 Add,然后单击 Web Service。
- 在 Web Service 字段,选择 stockInfo adapter。
- 单击 File - Save。
- 向页面添加标题为“Please enter one or more stock tickers separated by space:”的标签。
- 在标签下方添加编辑框。
- 添加标签为 Get Stock Quote 的按钮。
- 添加重复控件。
- 向重复控件添加标签和编辑框控件来显示结果数据,如图 6 所示,例如 company name、stock ticker 和 stock quote。
图 6. 显示结果数据
将元素绑定到 Web 服务
接下来绑定控件。拥有了 Web 服务的适配器之后,就可以将服务的请求文档、响应文档或错误文档用作页面的数据源,并且可以将控件绑定到上述数据源中的元素。
首先,将用户在其中键入证券报价机的编辑框绑定到包含证券报价机数据的请求文档中的元素。然后,将重复控件绑定到响应文档,因为重复控件中所显示的内容都来自响应文档。接下来,将显示 company name、stock ticker 和 stock quote 的编辑框绑定到包含这些数据的结果文档中的元素。最后创建调用 Web 服务的按钮事件。
将 stock ticker 编辑框绑定到请求文档中的 stockTicker 元素,如图 7 所示。
- 单击用户在其中键入报价机的编辑框。
- 单击 Properties 视图中的 Data 附签。
- 选择 Use data binding 选项。
- 在 Data source 字段中选择 requestDocument。
- 在 Data binding 字段中选择 stockTicker 元素。
图 7. 将 stock ticker 编辑框绑定到 stockTicker 元素
将重复控件绑定到响应文档中的最高层元素,如图 8 所示。
- 单击重复控件。
- 在 Properties 视图的 Repeat 附签中,选择 Use data binding。
- 在 Data source 字段中,选择 responseDocument。
- 在 Data binding 字段中,选择包含显示元素的元素。在这里,将绑定到响应文档的最顶层元素,即 /stockInfo。
图 8. 将重复控件绑定到响应文档的最高层元素
将重复控件中的每个编辑框绑定到响应文档中的适当元素,如图 9 所示。例如:
- 单击显示公司名称的编辑框。
- 单击 Properties 视图中的 Data 附签。
- 选择 Use data binding。
- 在 Data source 字段中选择 responseDocument。
- 在 Data binding 字段中选择 companyName 元素。
图 9. 将编辑框绑定到响应文档中的元素
向按钮添加 Invoke the Web Service 事件,如图 10 所示:
- 选择按钮。
- 单击 Properties 视图中的 Events 附签。
- 展开左侧窗格中的 Mouse 部分,然后单击 onClick。
- 在右侧的窗格中,选择 Simple Actions,然后单击 Add Action。
- 在 Category 字段中,选择 All。
- 在 Action 字段中,选择 Invoke Web Service。
- 在 Web service name 字段中,选择服务的名称,在这里是 stockInfo。
- 选择 Full Update。
图 10. 向按钮添加事件
结束语
在 fiture 版本中,期待对 WebSphere Service Registry and Repository (WSRR) 的支持,这是 IBM 面向服务的体系结构(Service-Oriented Architecture)功能。它是一个类似于 UDDI 的目录,但是提供了扩展的功能。WSRR 目录将存储有关 Web Services 的信息,并且组件可以使用这些信息。还可以在 WSRR 中注册 WebSphere Portal(使用 Web 服务)上被部署为 portlet 的组件,因此管理员可以了解 portlet 使用了哪些 Web 服务。
参考资料 学习
获得产品和技术
讨论
关于作者  | |  | Jason English 毕业于 Northeastern University 并拥有新闻学学士学位,现在对于他是如何开始从事软件行业的仍不太清楚。目前,他是 Lotus 的用户帮助作家,致力于各种项目的 Notes 帮助和内部文档。以前他曾作过某些 Massachusetts 报纸的新闻记者以及某些公司(包括剑桥的 Pegasystems)的技术作家。他住在 lower Allston(简称 L.A.),喜欢滑雪、吉他和棒球运动,并且正在寻找喜欢长时间海滩漫步、俄国诗歌和 Eisenstein 的电影的性情相投的伙伴(玩笑而已,不要当真)。 |
对本文的评价
|