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

第 1 课:为服务创建 EGL Web 项目

EGL 项目可充当服务或客户机,也可同时充当服务和客户机。对于本教程,您将创建两个项目:一个充当服务,另一个充当客户机。虽然可将所有代码放到单个 EGL 项目中,但使用两个项目会演示 EGL 如何调用另一应用程序中的服务。

演示

  1. 使用教程时,您可能想要选择使用单独的工作空间以便与任何其他项目互不干扰。如果想要使用另一工作空间,请遵循下列可选步骤:
    1. 在工作台中,单击文件 > 切换工作空间。 “工作空间启动程序”窗口将打开。
    2. 在工作空间字段中输入新的工作空间位置。
    3. 单击确定。 工作台将使用新工作空间位置重新打开。可随时切换工作空间位置,并且您可具有任意数目的工作空间位置。
  2. 切换至 Web 透视图:
    1. 单击窗口 > 打开透视图 > 其他。
    2. 在透视图列表中,单击 Web。如果未看到 Web 透视图,请选中显示全部复选框。
    3. 单击确定。
  3. 确保 EGL 设置为自动生成部署描述符。 部署描述符包含用于描述如何对其他应用程序提供 EGL 服务以及 EGL 应用程序如何查找其他应用程序提供的服务的信息。
    1. 在工作台中,单击窗口 > 首选项... > EGL。
    2. 在缺省 EGL 项目功能部件选项下,确保已选中创建 EGL 部署描述符。否则,请单击此字段以选择此项。
    3. 单击确定。
  4. 在工作台中,单击文件 > 新建 > 项目。
  5. 在“新建项目”窗口中,展开 EGL,然后单击 EGL 项目。 如果未看到 EGL 项目,请选中显示所有向导复选框。如果仍然未看到 EGL 类别或 EGL 项目,那么说明系统上未安装 EGL。请再次运行产品安装程序并选择用于 EGL 的其他功能部件项。
  6. 单击下一步。
  7. 在项目名称字段中,对项目指定以下名称:
    EGLService
  8. 在 EGL 项目类型下,单击 Web 项目。 此类型的项目允许您使用 Web 页面用户界面。
  9. 单击下一步。
  10. 在目标运行时下,选择 WebSphere Application Server V6.1。
  11. 确保已选择创建新的构建描述符。 构建描述符包含用于将程序生成为另一语言的选项。此时您不必担心这些选项,因为向导将为您创建适当的构建描述符。 除非使用 WAS 并且先前已更改用于将项目添加至 EAR(企业应用程序资源)的缺省设置,否则不必使用高级设置。如果使用 WAS,那么 EGLService 项目必须属于 EAR。工作台会记住此设置。
  12. 您可能会看到一个窗口询问您是否要切换至 J2EE 透视图。如果看到此窗口,请单击否。
新项目将出现在 Project Explorer 视图中。
显示新项目的 Project Explorer 视图

创建用于定义服务的接口

EGL 与以面向对象的语言通过同一方式来使用术语“接口”。对于 EGL,接口会定义服务要遵循的计划。具体地说,接口包含一个或多个函数原型或函数摘要。这些原型本身并非可使用函数,但它们会设置实际函数的计划。
例如,假定您需要编写执行算术运算(如计算器)的应用程序。您可能通过列示应用程序需要的所有算术运算(如加法、减法和乘法)开始,而不实际编写执行这些运算的代码。在此情况下,应命名每个运算并指定每个运算的输入和输出参数,但不应开始编写任何逻辑。这样一来,您就列示了 EGL 服务应用程序在接口中所需的函数。这种接口可能以如下内容开头:
interface myCalculatorInterface

  //Function to add numbers together 
  function addNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

  //Function to subtract numbers
  function subtractNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

end

然后,当您准备开始编写服务时,可从此接口入手并进行测试以确保遵循您的计划。

您基本上不需要编写接口,但一般来说,编程时最好使用接口来描述服务:
  • 该接口允许您提前规划服务,并且 EGL 会警告您该服务是否偏离接口。
  • 接口提供服务的简明摘要,该摘要说明服务可执行的操作而不提供服务实现的所有详细信息。
  • 接口可按开发或一致性的要求使用。
  1. 在 Project Explorer 视图中,右键单击 EGLService 项目以选择该项目。
  2. 单击新建 > 其他。
  3. 在“新建”窗口中,展开 EGL 并单击接口。 确保您正在使用 EGL 下的“接口”项而不是 Java 下的“接口”项。
  4. 单击下一步。
  5. 在“新建 EGL 接口部件”窗口中,确保项目的 EGLSource 文件夹显示在“源文件夹”字段中。 此字段应显示为 EGLService\EGLSource。
  6. 在包字段中,输入以下名称:
    interfaces
    因为项目还没有名为 interfaces 的包,所以 EGL 将创建此新包。
  7. 在 EGL 源文件名称字段中,对新接口输入以下名称:
    HelloInterface
    “新建 EGL 接口部件”窗口如下所示:
    “新建 EGL 接口部件”窗口
  8. 单击完成。 新接口已创建并会在 EGL 编辑器中打开。此接口已包含一个函数原型,例如:
    function functionName(parameterName string in) returns (int);
  9. 删除此函数原型。
  10. 在样本原型所在位置插入以下代码来表示您自己的函数原型:
    function SayHello(name string in, city string in) returns (string);
  11. 保存并关闭该文件。
以下是有关您刚输入的代码的一些技术详细信息:
  • 如上文中的说明,这不是完整的 EGL 逻辑块。此函数原型描述将位于服务中的函数。在此情况下,该原型描述名为 SayHello 的函数。
  • 该函数接受两个来自客户机的名为 parameters 的两个输入块:
    • 人员姓名的字符串变量
    • 表示城市的字符串变量
    该函数将使用这些参数将要返回至客户机的输出块放到一起。
  • 代码 returns (string) 指示此返回值及其类型。

接口如下所示:

EGL 接口部件的代码

创建服务

  1. 在 Project Explorer 视图中,右键单击您的项目然后单击新建 > 服务。
  2. 在“新建 EGL 服务部件”窗口中,确保项目的 EGLSource 文件夹显示在源文件夹字段中。 此字段应显示为 EGLService\EGLSource。
  3. 在包字段中,输入以下名称:
    services
  4. 在 EGL 源文件名称字段中,对新服务输入以下名称:
    HelloService
  5. 在实现接口旁边单击添加。
  6. 在选择接口字段中输入星号(*)。 接口将显示在匹配部件列表中。
  7. 在匹配部件列表中单击 HelloInterface 以选择该项。
  8. 单击确定。接口现在显示在实现接口列表中。
  9. 选中创建为 Web Service 复选框。 选中此复选框会将部署信息添加至部署描述符文件。“新建 EGL 服务部件”窗口如下所示:
    “新建服务”向导
  10. 单击完成。 新服务已创建并会在 EGL 编辑器中打开。该服务已包含基于接口中原型的启动程序函数。
  11. 除去注释 // TODO Auto-generated function 并在其位置输入以下代码:
    ReturnString string;
    ReturnString = name::", welcome to "::city::"!";
    return (ReturnString);
    此代码创建字符串变量并根据参数对其指定值,如“Jim, welcome to Chicago!”。:: 代码是并置运算符,用于将分开的字符串连接成单个字符串。 代码如下所示:
    EGL 服务部件的代码
  12. 保存并关闭该文件。
< 上一课 | 下一课 >