FeaturesPluginsDocs & SupportCommunityPartners

开发一个简单的异步 BPEL 进程

本教程提供样例项目 AsynchronousSample 的概述,并用图解来说明如何使用 NetBeans IDE 6.0(带有所必需的全部运行时环境)来部署、执行和测试一个异步 BPEL 进程。

该进程是一个应答进程,但它是异步的应答,不是同步的。客户端向该进程发送消息。该进程接受输入消息并立即返回。然后该进程异步呼叫原来的客户端,并把同一个消息发送回去。异步进程在 BPEL 进程长时间运行(用一长段时间来计算结果)时使用。通过在客户端上进行调用,把得到的结果返回给客户端。在本教程中,您将使用一个简单的 BPEL 项目 AsynchronousSample 和一个复合应用程序项目 AsynchronousSampleApplication。项目包括 WSDL 和方案文件、一个部署描述符和用来测试的输入文件。该进程的 Web 服务接口是一个简单的异步操作。

预计持续时间:30 分钟

教程需求

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

先决条件

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

系统需求

本教程假设您的系统符合在 NetBeans IDE 6.0 发行说明系统需求话题中所规定的需求。

本教程所需的软件

在开始前,您需要在计算机上安装以下软件:带 SOA 的 NetBeans IDE 6.0 和 GlassFish 应用程序服务器,可从 NetBeans IDE 6.0 下载里面的“全部”下载得到。

页首


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

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

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

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

  1. 右键单击 GlassFish 应用程序服务器节点,并选择“启动”。
    “输出”窗口会显示应用程序启动的日志信息。如果看不到“输出”窗口,请选择“窗口”>“输出”>“输出”。
    当消息 Application server startup complete 显示到“输出”窗口时,应用程序服务器就正在运行了。
    注意:如果 GlassFish 应用程序服务器节点上出现一个绿箭头标记,服务器就在运行。

注意:把应用程序部署到 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/glassfish-v2 /opt/SUNWappserver
    Solaris OS
    Linux
    user ~/glassfish-v2 ~/SUNWappserver
    Mac OS X N/A /Applications/NetBeans/glassfish-v2b58g /Applications/NetBeans/NetBeans 6.0
    Windows N/A C:\Program Files\glassfish-v2-b58g C:\Sun\AppServer
  5. 选中“注册本地缺省域”单选按钮并单击“下一步”。
  6. 输入域管理员的用户名和口令。
    如果您在安装过程中接受了缺省值,用户名是 admin,口令是 adminadmin
  7. 单击“完成”。

页首

打开 AsynchronousSample 项目

  1. 从 IDE 的主菜单选择“文件”>“新建项目”。
    将打开“新建项目”向导。
  2. 在“类别”列表中,选择“样例项目”>“SOA”。
  3. 在“项目”列表中,选择 Asynchronous BPEL Process

    选择 Asynchronous BPEL Process

  4. 单击“下一步”。
  5. 在“项目名称”字段中,键入 AsynchronousSample

    键入项目名称

  6. (可选)在“项目位置”字段中,使用“浏览”按钮来导航并选择一个不同的文件夹来用作 IDE 保存项目文件的位置。
  7. 单击“完成”。
    “项目”窗口现在包含两个项目节点:一个是 BPEL项目 AsynchronousSample,另一个是复合应用程序项目 AsynchronousSampleApplication

页首


在“项目”窗口中浏览 BPEL 和 JBI 项目

  1. 在“项目”窗口中,展开 AsynchronousSample 节点,再展开 Process Files 节点。
    Process Files 节点包含这些条目:
    •  AsynchronousSample.bpel,BPEL 进程。
    • AsynchronousSample.wsdl,进程的 Web 服务接口。
    • AsynchronousSample.xsd,方案文件。
    • AsynchronousSampleClient.bpel,测试客户端的进程。
    • AsynchronousSampleClient.wsdl,客户端进程的 WSDL。
  2. 在“项目”窗口中,展开 AsynchronousSampleApplication 节点。JBI 部署项目包含:
    • Process Files
    • JBI Modules
    • Test

    展开的 AsynchronousSample

  3. 双击 AsynchronousSample.bpel 节点。
    注意以下几点:
    • “源代码编辑器”包含一个 AsynchronousSample.bpel 的选项卡。
    • AsynchronousSample 图显示在“设计视图”中。
      “设计视图”是业务过程的可视化设计器。在这个视图中,您可以可视化地为业务过程建模。BPEL 设计工具会自动生成和可视化设计相对应的 BPEL 代码。
    • BPEL 元素的调板将在“源代码编辑器”右侧打开。
    • “导航器”窗口将显示 BPEL 进程的 BPEL 逻辑视图。

    展开的 AsynchronousSample.bpel
    单击以放大

页首


在“项目”窗口中浏览 AsynchronousSampleClient

AsynchronousSample 项目是一个异步的 BPEL 进程。测试异步进程需要一个能接收异步回调的客户端。因此,项目还包含一个 AsynchronousSampleClient BPEL 进程。AsynchronousSampleClient 进程的唯一目的就是加快 AsynchronousSample 的单元测试。

  1. 双击 AsynchronousSampleClient.bpel 节点。
    IDE 会在“设计视图”里显示 AsynchronousSampleClient 图。
    注意 AsynchronousSample(partnerLinkB)确实对 AsynchronousSampleClient 进行回调并返回响应。

    AsynchronousSampleClient 图

  2. 双击 receiveCallback 以接收 AsynchronousSampleClient 进程的活动。
    将打开 receiveCallback 的“属性编辑器”。
  3. 单击“关联”选项卡,选择“correlator”行并单击“编辑”。
    将出现“编辑关联集”编辑器。
    注意关联是如何被用来把这个响应关联到 AsynchronousSampleClient 的正确实例上的。

    “编辑关联集”编辑器

页首


把项目部署到应用程序服务器

注意 BPEL 项目不能直接部署。它必须作为 JBI 模块添加到一个复合应用程序项目中。然后你就可以部署该复合应用程序项目。部署项目使得应用程序服务器能够取得服务组合件,进而允许运行它的服务单元。

  1. 展开“AsynchronousSampleApplication”>“JBI 模块”。
    确保已添加了 AsynchronousSample.jar 节点。

    把 AsynchronousSample.jar 添加到复合应用程序项目

  2. 右键单击 AsynchronousSampleApplication 项目节点,并选择“部署”。
  3. 在“警告”对话框中,确保选择了“GlassFish V2”,并单击“确定”。
  4. 如果您在“输出”窗口看到了以下消息,证明部署成功:

    部署成功

  5. 如果看不到“输出”窗口,请选择“窗口”>“输出”>“输出”。

页首


测试 AsynchronousSampleApplication

  1. 在“项目”窗口,展开“AsynchronousSampleApplication”>“Test”>“NewTestcase0”。NewTestcase0 节点包含两个 XML 文件:
    • Input.xml 用作输入
    • Output.xml 用作输出
    每当测试运行的时候,就会把当前的输出和 Output.xml 的内容进行比较:

    NewTestcase0

  2. 右键单击 AsynchronousSampleApplication 项目节点,并从弹出菜单选择“测试”。
    “输出”窗口中出现以下消息:

    NewTestcase0 通过

参见


页首

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