使用 EGL 创建 Hello World 服务 >
< 上一课 | 下一课 >

第 4 课:将项目设置为客户机

与服务项目一样,客户机项目使用 EGL 部署描述符文件。但是,在客户机项目中,EGL 部署描述符将包含有关在何处查找服务的信息。您将导入通过服务创建的 WSDL 文件,并且 EGL 会将适当绑定信息添加至 EGL 部署描述符以便客户机可找到该服务。

在此过程中,EGL 会创建接口部件以在客户机项目中表示该服务。一旦接口部件绑定至实际服务,就可将该接口部件当作服务本身使用。

演示

设置 EGL 部署描述符文件

  1. 通过在 Project Explorer 视图中双击 EGLClient/EGLSource/EGLClient.egldd 来打开客户机项目的 EGL 部署描述符文件。 请注意,EGL 部署描述符与 Java 部署描述符文件夹无关(Java 部署描述符文件夹也在 EGLClient 项目中)。
  2. 在部署描述符编辑器中,转至服务绑定选项卡。
  3. 在“服务绑定”选项卡上,单击添加。
  4. 在“添加服务绑定”窗口中,单击 Web 绑定。
  5. 单击下一步。
  6. 选中从工作空间中选择 WSDL 文件并将其复制到当前项目复选框。
  7. 单击浏览。
  8. 选择 HelloService.wsdl 文件(该文件位于 EGLSource\wsdl 文件夹中 EGLService 项目中),然后单击确定。
  9. 在接口选项下,选择通过 WSDL 文件生成 EGL 接口单选按钮。 选择此选项后,EGL 将创建自动访问该服务所需的部件。
  10. 接受页面上其他字段的缺省值,然后单击下一步。 “新建 EGL 接口”页面显示 WSDL 文件中描述的所有服务的列表。EGL 将在客户机项目中为您在此页面上选择的每个服务创建接口部件。现在此处仅列示您在服务项目中创建的服务。
  11. 确保已选中 HelloService 服务的复选框,然后单击下一步。 下一页允许您设置将创建新接口部件的位置以及要命名为的名称。还可选择要将服务中的哪些函数包括在接口部件中。缺省情况下,将包括服务部件中的所有函数。
  12. 在源文件夹字段中,确保指定了客户机项目的源文件夹:EGLClient\EGLSource。
  13. 在包字段中,确保已指定 services 包。
  14. 确保在函数列表中选中了 SayHello 函数旁边的复选框。 窗口如下所示:
    “添加服务绑定”窗口
  15. 单击完成。 您现在已创建服务绑定。通过使用此绑定,您在此项目中创建的 Web 页面可访问该服务。部署描述符文件中的绑定如下所示:
    客户机的部署描述符文件
  16. 保存并关闭部署描述符文件。 请注意,EGL 已在项目的 services 包中创建接口部件。接口部件如下所示:
    新接口部件

    此接口类似您在服务应用程序中创建的接口,但此接口具有引用部署描述符文件中的绑定的其他属性。

  17. 与您在 EGLService 项目中所做的一样,确保部署描述符出现在客户机构建描述符文件中:
    1. 双击该项目的构建描述符以在构建部件编辑器中打开该构建描述符。 此文件名为 EGLClient.eglbld,并且位于项目的 EGLSource 文件夹中。
    2. 在构建描述符选项列表中,名为 deploymentDescriptor 的选项应设置为 EGLClient。
    3. 单击确定并关闭该文件。

在 Web 页面中使用服务

  1. 对 Web 页面打开名为 ClientPage.egl 的 JSF 处理程序。
  2. 在 JSF 处理程序中,通过接口部件创建变量。通常,最简单的方法是使用内容辅助通过以下方式创建变量:
    1. 在 JSF 处理程序文件中,将光标放在紧跟您在上一节中创建的三个变量之后的空白行上。
    2. 在空白行上,输入以下代码作为接口部件的前几个字符:
      he	
    3. 按 CTRL + 空格键。 内容辅助会使用以下代码来填写该行:
      helloService HelloService {@bindService};
      内容辅助还会将 import 语句添加至 JSF 处理程序,以便您可使用此部件而不必指定其完整位置。结果如下图所示:
      内容辅助填写该行
  3. 在 getHello() 函数内的空白行上,通过将 SayHello() 函数传递至 name 和 city 变量并将输出指定给 output 变量以在服务中调用该函数:
    output = helloService.SayHello(name, city);
    请记住,您可通过输入关键字或部件的前几个字符然后按 CTRL + 空格键来使用内容辅助。 JSF 处理程序如下所示:
    JSF 处理程序中的代码
  4. 保存并关闭 JSF 处理程序。
  5. 通过在 Project Explorer 视图中右键单击客户机项目然后单击生成来生成完整客户机项目。
  6. 接下来,为进行测试,必须让应用程序服务器知道有关您计划调用的服务的信息。在“服务器”视图中,右键单击 WebSphere Appplication Server V6.1 并单击添加和除去项目。
  7. 在“添加和除去项目”页面上,验证 EGLClientEAR 和 EGLServiceEAR 是否列示为已配置项目。如果 EGLServiceEAR 在可用项目列中,请单击该项目以选中它,然后单击添加和完成。 窗口如下图所示:
    已完成的“添加和除去项目”窗口将 EGLServiceEAR 显示为已在服务器上配置
    现在可使用 Web 页面。
  8. 在 Project Explorer 视图中,右键单击 WebContent 文件夹中的 ClientPage.jsp Web 页面(而不是 JSF 处理程序),然后单击运行方式 > 在服务器上运行。
  9. 在“定义新的服务器”窗口中,单击对应选择现有服务器的单选按钮,然后单击 WebSphere Application Server V6.1。单击完成。 服务器会发布该页面并在内部 Web 浏览器中显示该页面。如果愿意使用外部 Web 浏览器,那么可复制内部 Web 浏览器中的 URL 并将其粘贴到外部 Web 浏览器的 URL 字段中。
  10. 在姓名和城市字段中输入姓名和城市,然后按页面上的按钮。 根据您输入的姓名和城市,页面上的输出字段显示“Bill, welcome to New York!”之类的字符串,如下图中所示:
    完成的页面
这可能有点像为了一个简单任务而做了大量工作,但这些项目演示了 EGL 如何创建服务和/或客户机以及这些应用程序如何一起工作。通过在面向服务的体系结构中使用 Web Service 和客户机,可以灵活的模块化方式将大量 EGL 应用程序和非 EGL 应用程序集成到一起。
< 上一课 | 下一课 >