FeaturesPluginsDocs & SupportCommunityPartners

创建一个“Hello World”复合应用程序

在本教程中,您将创建一个简单的 SOA 项目。接着您将把一个 WSDL 文档添加到项目,并使用 WSDL 编辑器的“伙伴”视图来添加消息、伙伴链接类型、端口类型和操作。然后您将创建一个符合应用程序项目,并使用复合应用程序(服务组合件)编辑器来修改项目配置。本教程还将图解一个基本的场合,说明文件绑定组件是如何用在复合应用程序中的。

预计持续时间:45 分钟

教程需求

在开始前,请确保您重新检查了本节中的需求。

先决条件

本教程假设您具有 Java 语言和平台、NetBeans IDE 的一些基本知识或编程经验。

本教程所需的软件

在开始前,请下载以下软件到您的计算机上:NetBeans 6.0。“下载全部”选项包括本教程所需的 SOA 包和 GlassFish V2 应用程序服务器。

页首

配置和启动 GlassFish 应用程序服务器

在您安装完全版的 6.0 时,就已经包括了 GlassFish 应用程序服务器。NetBeans 将在需要的时候自动启动 AppServer。

要启动 GlassFish 应用程序服务器:

  1. 如果看不到“服务”窗口,请选择“窗口”>“服务”。
  2. 在“服务”窗口中,展开“服务器”节点。
    “服务器”节点应该包含有 GlassFish 应用程序服务器的子节点。如果 GlassFish 应用程序服务器没有出现,请转到要配置 GlassFish 应用程序服务器

 

  1. 右键单击 GlassFish 应用程序服务器节点,选择“启动”。

    “输出”窗口会显示应用程序启动的日志信息。如果看不到“输出”窗口,请选择“窗口”>“输出”>“输出”。

    当消息“Application server 启动完毕”显示到“输出”窗口时,应用程序服务器就正在运行了。

注意:把应用程序部署到 GlassFish 应用程序服务器时,将自动启动服务器。这样,您就不必手动启动应用程序服务器。

注意:以下过程说明如何配置 IDE 以使用另一个版本的 GlassFish V2 应用程序服务器。

要配置 GlassFish V2 应用程序服务器:

您可能想使用不同版本的应用程序服务器,而不是随 NetBeans 6.0 提供的那个。例如,您也许想从 GlassFish 社区网站下载并安装更新版本的 GlassFish V2 应用程序服务器。

以下过程说明如何配置 NetBeans 6.0 IDE 以使用另一个版本的 GlassFish V2 应用程序服务器。假设您已经下载并安装了另一个版本的应用程序服务器。

  1. 在“服务”窗口,右键单击“服务器”节点,从弹出菜单选择“添加服务器”。
    “添加服务器实例”对话框会打开。
  2. 在“选择服务器”页,从列表选择“GlassFish V2”。
  3. 单击“下一步”。
    “平台文件夹位置”页会打开。
  4. 在“平台位置”字段,使用“浏览”按钮来导航并选择应用程序服务器的安装位置。

    如果您把 GlassFish 应用程序服务器安装到了缺省位置,请参考表 1 来找到安装位置。否则,请导航到您安装 GlassFish V2 应用程序服务器的位置。

    表 1:应用程序服务器的缺省安装目录

    平台 安装为…… SOA 的安装位置 工具集的安装位置
    Solaris OS
    Linux
    root /opt/SUNWappserver /opt/SDK
    Solaris OS
    Linux
    user ~/SUNWappserver ~/SDK
    Mac OS X N/A ~/SUNWappserver ~/SDK
    Windows N/A C:\Sun\AppServer C:\Sun\SDK
  5. 选中“注册本地缺省域”单选按钮,单击“下一步”。
  6. 输入域管理员的用户名和口令。
    如果您在安装过程中接受了缺省值,用户名是 admin,口令是 adminadmin
  7. 单击“完成”。

页首

创建 BPEL 模块项目

在本节中,您将创建一个 BPEL 模块项目 SynchronousSample

要创建 SynchronousSample 项目:

  1. 从主菜单中,选择“文件”>“新建项目”。
    “新建项目”向导会打开。
  2. 在“类别”列表中,选择“SOA”节点,再在“项目”列表中,选择“BPEL 模块”节点。
  3. 单击“下一步”。
  4. 在“项目名称”字段中,键入“SynchronousSample”。
  5. (可选)在“项目位置”字段中,使用“浏览”按钮来导航并选择一个不同的文件夹来用作 IDE 保存项目文件的位置。
  6. 单击“完成”。
    “项目”窗口现在已包含代表 BPEL 模块项目“SynchronousSample”的节点。

    “项目”窗口中的 SynchronousSample 项目节点

页首

创建 XML 方案

在本节中,您将把一个新的 XML 方案文件添加到 BPEL 模块项目中,然后把 XML 方案组件添加到该方案中。

要创建 SynchronousSample.xsd

  1. 在“项目”窗口中,展开“SynchronousSample”项目节点,然后右键单击“进程文件”点,选择“新建”>“其它”。
    “新建文件”向导会打开。
  2. 在“新建文件”向导中,进行如下操作:
    1. 在“选择文件类型”页的“类别”列表中,选中“XML”节点,然后在“文件类型”列表中,选中“XML 方案”节点,单击“下一步”。
    2. 在“文件名称”字段中,键入“SynchronousSample”。
    3. 单击“完成”。
    在“项目”窗口中,“进程文件”节点现在包含一个标为 SynchronousSample.xsd 的子节点。源编辑器包含对应此 XML 方案文件 SynchronousSample.xsd 的选项卡,并打开了“方案”视图。
  3. 在“方案”视图中,单击“设计”按钮来打开 XML 方案编辑器的“设计”视图。

    已创建方案文件,XML 方案编辑器的“设计”视图,单击以放大

要把一个复杂类型添加到 XML 方案:

  1. 在“设计”视图的调板中,展开“XML 方案组件”区段,选中“复杂类型”图标。
    如果看不到“ 调板”窗口,请从主菜单选择“窗口”>“调板”。
  2. 把您的选择拖放到方案设计区,紧挨在“Complex Types”节点下方。
    IDE 会添加一个复杂类型节点,并且该复杂类型的名称(newComplexType)被选中以备让您更改。
  3. 在该新节点中键入“simpleProcess”,按下 Enter。
    设计区现在会向您显示新的复杂类型 simpleProcess

    已把 simpleProcess 复杂类型添加到 XML 方案文件

要把一个本地元素添加到 simpleProcess

  1. 在“调板”的“XML 组件”区段中,选中“元素”图标,把它拖到方案设计区的 simpleProcess 节点上。
    IDE 会添加一个标为“newElement”的节点。
  2. 如果看不到“属性”窗口,请选择“窗口”>“属性”。
  3. 在方案设计区中,选中“newElement”节点。
  4. 在“属性”窗口中,选中“Name”属性的值字段使它可编辑,键入“paramA”。
  5. 在“属性”窗口的“Definition”字段中,单击省略号按钮。
    “定义”窗口会打开。
  6. 在列表中,展开“Built-in Types”节点,选择“string”节点。
  7. 单击“确定”。
    IDE 会更新“设计”视图。

    已把 paramA 本地元素添加到 simpleProcess 复杂类型

要添加一个全局元素:

  1. 在“调板”的“XML 组件”区段,选中“元素”图标,把它拖到方案设计区,紧跟在“Elements”节点下方。
    在方案设计区中,IDE 会把“newElement”组件添加到“Elements”节点下方。
  2. 在“设计”视图的方案设计区中,选中“newElement”节点。
  3. 在“属性”窗口中,选中“Name”属性的值字段使它可编辑,键入“typeA”。
  4. 在“属性”窗口的“Definition”属性中,单击省略号按钮。
    “元素定义 - 定义”对话框会打开。
  5. 在类型列表中,展开“Complex Types”节点并选中“simpleProcess”复杂类型节点。
  6. 单击“确定”。
    在“设计”视图中,IDE 现在会显示“typeA”元素节点旁边的选中的“simpleProcess”复杂类型。

    已把 typeA 全局元素添加到 XML 方案

  7. 要保存您的更改,请在“项目”窗口中,选中“SynchronousSample”项目节点,再从主菜单中,选择“文件”>“全部保存”。

页首

创建 WSDL 文档

在本节中,您将把一个 WSDL 文件添加到 BPEL 模块项目中,然后配置该 WSDL 文档的组件。

要创建 SynchronousSample.wsdl

  1. 在“项目”窗口中,展开“SynchronousSample”项目节点,然后右键单击“进程文件”点,选择“新建”>“WSDL 文档”。
    “新建 WSDL 文档”向导会打开。
  2. 在“名称和位置”页中,进行如下操作:
    1. 在“文件名称”字段中,键入“SynchronousSample”。
    2. 选中“导入 XML 方案文件”复选框。
    3. 在“XML 方案”字段中,单击“浏览”按钮。
      “添加导入”对话框会打开。该对话框显示您可以导入的 XML 方案。
    4. 展开“按文件”>“SynchronousSample”>“进程文件”,选中“SynchronousSample.xsd”。
      确保“导入”列中代表“SynchronousSample.xsd”行的复选框被选中。

      选择要导入的 XML 方案

    5. 单击“确定”。
    6. 单击“下一步”。
    “抽象配置”页会打开。
  3. 在“抽象配置”页的“输入”区中,进行以下操作:
    1. 在“消息部分名称”列中,双击缺省值(part1)使该字段可编辑。
    2. 键入“inputType”,按下 Enter。
    3. 在“元素或类型”列中,单击省略号按钮。
      “选择元素或类型”对话框会打开。
    4. 展开“按文件” >“SynchronousSample”>“src/SynchronousSample.xsd”>“元素”。
      注意:您也许需要滚动到“选择元素或类型”对话框中的列表顶部以看到“按文件”节点。
    5. 在“元素”节点下,选中“typeA”节点,单击“确定”。
  4. 在“抽象配置”页的“输出”区中,进行以下操作:
    1. 在“消息部分名称”列中,双击缺省值(part1)使该字段可编辑。
    2. 键入“resultType”,按下 Enter。
    3. 在“元素或类型”列中,单击省略号按钮。
      “选择元素或类型”对话框会打开。
    4. 展开“按文件” >“SynchronousSample”>“src/SynchronousSample.xsd”>“元素”。
      注意:您也许需要滚动到“选择元素或类型”对话框中的列表顶部以看到“按文件”节点。
    5. 在“元素”节点下,选中“typeA”节点,单击“确定”。
    完成的“抽象配置”页应该像下面显示的那样。

    “新建 WSDL 文档”向导,已完成“抽象配置”页,单击以放大

  5. 单击“下一步”。
    “实体配置”页会打开。
  6. 在“绑定子类型”下,选中“文档字面”单选按钮。
  7. 单击“完成”。
    在“项目”窗口中,“进程文件”节点现已包含标为“SynchronousSample.wsdl”的子节点。
    “源编辑器”现已包含一个代表 WSDL 文件 SynchronousSample.wsdl 的选项卡,并打开了 WSDL 视图。

    已创建 WSDL 文件,WSDL 编辑器的 WSDL 视图,单击以放大

页首

创建 BPEL 进程

在本节中,您将为 BPEL 进程创建一个 .bpel 文件。然后您将把一个伙伴链接和三个活动添加到进程中。

要创建 SynchronousSample.bpel

  1. 在“项目”窗口中,然后右键单击“进程文件”点,选择“新建”>“BPEL 进程”。
    “新建 BPEL 进程”向导会打开。
  2. 在“文件名称”字段中,键入“SynchronousSample”。
  3. 单击“完成”。
    在“项目”窗口中,“进程文件”节点现已包含一个标为“SynchronousSample.bpel”的子节点。
    “源编辑器”已包含一个代表该 BPEL 进程 SynchronousSample.bpel 的选项卡,并打开了“BPEL 设计器”的“设计”视图。

    已创建 BPEL 进程文件,“BPEL 设计器”的“设计”视图,单击以放大

要添加一个伙伴链接:

  1. 确保 SynchronousSample.bpel 的“设计”视图是“源编辑器”中的活动窗口。
  2. 在“项目”窗口中,展开“SynchronousSample”项目节点,然后展开“进程文件”节点,选中“SynchronousSample.wsdl”节点。
  3. 把您的选项(SynchronousSample.wsdl)从“项目”窗口拖到“设计”视图。
    “新建伙伴链接”对话框会打开。
  4. 接受缺省值,单击“确定”。
    IDE 会添加一个代表该伙伴链接的框到设计区中。

    已把伙伴链接添加到 BPEL 进程

要添加一个 Receive 活动:

  1. 确保 SynchronousSample.bpel 的“设计”视图是“源编辑器”中的活动窗口。
  2. 在“调板”中的“Web 服务”区段中,选中“Receive”图标。
  3. 把您的选项拖到设计区的 SynchronousSample 进程框上,位于“进程开始”和“进程结束”活动之间。
    IDE 会提供可视化线索,向您显示可以放下选项的位置。
    本操作把一个 Receive 活动“Receive1”放到“设计”视图上。
  4. 双击“Receive1”活动。
    “Receive1 [Receive] - 属性”编辑器会打开。
  5. 在“主要”选项卡上,把“名称”字段中的值更改为“start”。
  6. 从“伙伴链接”下拉列表中,选择“PartnerLink1”。
    IDE 会用“SynchronousSampleOperation”填写“操作”字段。
  7. 按下面的操作新建一个输入值:
    1. 单击“输入变量”字段旁边的“创建”按钮。
      “新建输入变量”对话框会打开。
    2. 把“名称”字段中的值更改为“inputVar”。
    3. 单击“确定”。
  8. 单击“确定”以关闭“Receive1 [接收] - 属性”编辑器。
    在“SynchronousSample”进程框中,“设计”视图现在显示了“PartnerLink1”和“start”活动之间的一个连接。

    已把 Receive 活动添加到 BPEL 进程,“BPEL 映射器”窗口打开,单击以放大

要添加一个 Reply 活动:

  1. 确保 SynchronousSample.bpel 的“设计”视图是“源编辑器”中的活动窗口。
  2. 在“调板”中的“Web 服务”区段,选中“Reply”图标。
  3. 把您的选项拖到设计区的 SynchronousSample 进程框上,位于“start”活动和“进程结束”活动之间。
    IDE 会提供可视化线索,向您显示可以放下选项的位置。
    本操作把一个 Reply 活动“Reply1”放到“设计”视图上。
  4. 双击“Reply1”活动。
    “Reply1 [Reply] - 属性”编辑器会打开。
  5. 在“主要”选项卡上,把“名称”字段中的值更改为“end”。
  6. 从“伙伴链接”下拉列表中,选择“PartnerLink1”。
    IDE 会用“SynchronousSampleOperation”填写“操作”字段。
  7. 按下面的操作新建一个输出值:
    1. 确保“正常响应”单选按钮被选中。
    2. 单击“输出变量”字段旁边的“创建”按钮。
      “新建输出变量”对话框会打开。
    3. 把“名称”字段中的值更改为“outputVar”。
    4. 单击“确定”。
  8. 单击“确定”以关闭“Reply1 [答复] - 属性”编辑器。
    “设计”视图现在显示了“SynchronousSample”进程框中的“end”活动和“PartnerLink1”之间的一个连接。

    已把 Reply 活动添加到 BPEL 进程

要添加一个 Assign 活动:

  1. 确保 SynchronousSample.bpel 的“设计”视图是“源编辑器”中的活动窗口。
  2. 在“调板”中的“基本活动”区段,选中“Assign”图标。
  3. 把您的选项拖到设计区的“start”活动和“end”活动之间。
    本操作把一个赋值活动“Reply1”放到“设计”视图上。
  4. 选中“Assign1”活动。
  5.  如果看不到“BPEL 映射器”窗口,请从主菜单选择“窗口”>“BPEL 映射器”。
  6. 在“BPEL 映射器”的“源树”面板(左侧面板)中的“变量”下,展开“inputVar”>“inputType”。
    inputVar”节点下方会出现一个“paramA”节点。
  7. 在“BPEL 映射器”的“目的树”面板(右侧面板)中的“变量”下,展开“outputVar”>“resultType”。
    resultType”节点下方会出现一个“paramA”节点。
  8. 在“源树”面板中,选中“paramA”节点,把它拖到“目的树”的“paramA”节点上。,
    该赋值把输入语句赋值到输出中。

    paramA 节点在“BPEL 映射器”中被连接

  9. 要保存您的更改,请在“项目”窗口中,选中“SynchronousSample”项目节点,再从主菜单中,选择“文件”>“全部保存”。

页首

创建和编辑复合应用程序

在部署 BPEL 模块项目前,您必须把 JBI 模块添加到部署项目。部署项目使得应用程序服务器能够取得服务组合件,进而允许运行它的服务单元。

要创建符合应用程序项目并添加 JBI 模块:

  1. 从主菜单中,选择“文件”>“新建项目”。
    “新建项目”向导会打开。
  2. 在“类别”列表中选中“SOA”节点,在“项目”列表中,选中“复合应用程序”节点。
  3. 单击“下一步”。
  4. 在“项目名称”字段中,键入“SynchronousSampleApplication”。
  5. 单击“完成”。
    “项目”窗口现已包含代表复合应用程序“SynchronousSampleApplication”的项目节点。
  6. 在“项目”窗口中,右键单击“SynchronousSampleApplication”项目节点,从弹出菜单中选择“添加 JBI 模块”。
    “选择项目”对话框会打开。
  7. 选中您在本教程中刚创建的“SynchronousSample”项目,单击“添加项目 JAR 文件”。
    “选择项目”对话框会关闭。
  8. 在“项目”窗口中,展开“SynchronousSampleApplication”项目节点,然后展开“JBI 模块”节点。
    注意已添加了一个“SynchronousSample.jar”节点。

    已创建 SynchronousSampleApplication created,并已把 JBI 模块添加到复合应用程序

要部署复合应用程序:

  • 右键单击“SynchronousSampleApplication”项目,然后选择“部署项目”。
    如果在“输出”窗口中出现类似下面的消息,就表明部署成功:
    生成成功(总共时间:11 秒)

页首

测试复合应用程序

通过添加测试用例、绑定到操作、提供输入然后使用测试程序,您可以增强复合应用程序项目。

要测试 SynchronousSampleApplication 复合应用程序:

  1. 在“项目”窗口,展开 SynchronousSampleApplication 项目节点,右键单击“测试”节点,从弹出菜单选择“新建测试用例”。
    “新建测试用例”向导会打开。
  2. 接受缺省用例名称“TestCase1”,单击“下一步”。
  3. 在“选择 WSDL 文档”页中,展开“SynchronousSample”节点,选中“SynchronousSample.wsdl”,单击“确定”。
  4. 在“选择测试操作”页中,选中“SynchronousSampleOperation”,单击“完成”。
    注意下面几点:
    • 在“项目”窗口中,“测试”下新增加了一个“TestCase1”节点。
    • TestCase1”节点包含两个子节点:“Input”和“Output” 。
    • “源编辑器”包含一个代表输入文件 Input.xml 的选项卡。

    已新建测试用例,单击以放大

    注意:如果“源编辑器”不包含 Input.xml 的选项卡,在“项目”窗口中双击“Input”节点以打开这个文件。
  5. Input.xml 文件的“源编辑器”选项卡中,进行以下操作:
    1. 定位到如下行:
      <syn:paramA>?string?<syn:paramA>.
    2. 把“?string?”替换为“Hello World”。
      该行应该变成这样:
      <syn:paramA>Hello World<syn:paramA>.
    3. 从主菜单选择“文件”>“全部保存”。
  6. 在“项目”窗口中,双击“测试”>“TestCase1”下的“Output”节点以检查其内容。
    一开始,output.xml 为空。因此第一次测试运行会用真实输出填充 output.xml。以后的测试运行会比较真实输出和 output.xml 的内容。
  7. 在“项目”窗口中,右键单击“TestCase1”节点,从弹出菜单选择“运行”。
    注意:第一次运行时特例,因为 Output 为空,输出就被写到 Output 中。
    注意“输出”窗口中的失败消息。
    “覆盖空输出?”对话框会打开。
  8. 单击“是”。
  9. 在“项目”窗口中,右键单击“TestCase1”节点,从弹出菜单选择“运行”。
    第一次运行后,Output.xml 文件不再为空。它的内容被保留,而不会被新的结果覆盖。

    TestCase1 运行结束,单击以放大

页首

小结

在本教程中,您创建了一个简单的 BPEL 模块项目 SynchronousSample 和一个复合应用程序项目 SynchronousSampleApplication。然后你设计了一个 XML 方案文件和一个 WSDL 文件。您学习了如何设计 BPEL 进程并部署它。您还学习了如何创建并进行复合应用程序的测试运行。

完成本教程中的步骤后,您已经生成了样例同步 BPEL 进程项目,它可从 IDE 中取得(“新建”>“项目”>“样例”>“SOA”>“同步 BPEL 进程”)。

后续步骤S

  • 要发送评论和建议、获得支持并保持得到 NetBeans IDE Java EE 开发功能的最新更改的通知,请加入 邮件列表。

参见

页首

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by