本教程介绍在 BPEL 流程中使用相关集、属性和属性别名的方式和时间。还介绍为了配置这些元素 NetBeans Enterprise Pack 提供的可视工具。在一个 BPEL 过程示例的基础上,您将会看到相关集、属性和属性别名如何支持异步业务协作。
每个 BPEL 业务流程都是一个 Web 服务,因此可能您只需要知道目标端口就可以向 BPEL 流程发送消息。但是,由于业务流程是状态流程,并且已被实例化为根据它们的状态起作用,因此使用 BPEL 相关集以标准、与实现无关的方式来支持 Web 服务之间的状态协作。
相关集依赖于消息封装、标题或业务文档自身中存储的相关数据。相关性的声明依赖于声明的消息属性。属性只是消息中由查询标识的一个字段。查询由名为属性别名的特定结构指定。
先决条件
本教程假设您基本了解 NetBeans IDE 或者有使用它编程的经验。
系统要求
本教程假设您的系统达到了 NetBeans Enterprise Pack 5.5.1 Beta Release Notes 的“System Requirements”主题中指定的要求。
教程所需的软件
注意:现在,NetBeans IDE 5.5.1 Release Candidate 已发布。NetBeans Enterprise Pack 5.5.1 Beta 与此 RC 版本的 IDE 结合使用。我们不指望发布 NetBeans Enterprise Pack 5.5.1 Beta 的任何进一步更新。现在,我们的开发精力全都集中在 NetBeans 6.0 和 SOA Pack 上。有关详细信息,请参见 Announcing the availability of NetBeans 6.0 SOA Pack。
开始之前,您必须在计算机上安装以下软件:
l NetBeans IDE 5.5.1 RC1
l NetBeans Enterprise Pack 5.5.1 Beta
l 要完成本教程中的部署步骤,您必须安装 Sun Java System Application Server Platform Edition 9.1 Beta。该应用程序服务器与 NetBeans Enterprise Pack 5.5.1 Beta 捆绑在一起下载。
目录
l 配置和启动 Sun Java 系统应用程序服务器
l 打开、部署和测试示例项目
l 向示例业务流程中添加状态
l 定义相关属性和属性别名
l 创建和添加相关集
l 调试和测试 BPEL 流程
l 小结
配置和启动 Sun Java 系统应用程序服务器
部署应用程序之前,必须正确配置并运行 Sun Java 系统应用程序服务器。
注意:在下面的步骤中,Sun Java System Application Server 节点是指表示该应用程序服务器中安装 Sun Java System Application Server 9.1 的节点。
检查 Sun Java 系统应用程序服务器的状态:
1. 如果没有看到 Runtime 窗口,请选择 Window > Runtime。
2. 在 Runtime 窗口中,展开 Servers 节点。
Servers 节点应该包含一个 Sun Java System Application Server 子节点。
如果在 Sun Java System Application Server 节点上出现了一个绿色的箭头标记,则表示该服务器正在运行。
配置 Sun Java 系统应用程序服务器:
1. 如果没有看到 Runtime 窗口,请选择 Window > Runtime。
2. 在 Runtime 窗口中,右键单击 Servers 节点,然后从弹出菜单中选择 Add Server。
将打开 Add Server Instance 对话框。
3. 在 Choose Server 页面上,从 Server 下拉列表中,选择 Sun Java System Application Server。
4. (可选)在 Name 字段中,更改服务器的默认名称。
IDE 使用该名称标识该服务器。
5. 单击 Next。
将打开 Platform Location Folder 页面。
6. 在 Platform Location 字段中,使用 Browse 按钮导航到该应用程序服务器的安装位置并选择该位置。
根据安装类型和平台,默认的安装位置可能不同,如表 1 所示。
表 1:默认的应用程序服务器安装目录
|
平台
|
安装身份
|
Enterprise Pack 安装
|
工具包安装
|
|
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
|
7. 选择 Register Local Default Domain 单选按钮并单击 Next。
8. 输入域管理员的用户名和密码。
如果您接受安装过程中的默认值,则用户名为 admin,密码为 adminadmin。
9. 单击 Finish。
启动 Sun Java 系统应用程序服务器:
1. 在 Runtime 窗口中,右键单击 Sun Java System Application Server 节点,然后选择 Start。
2. 等待 Output 窗口中出现以下消息:
Application server startup complete.
当该服务器正在运行时,IDE 会在 Sun Java System Application Server 节点上显示一个绿色箭头标记。
确保 BPEL 服务引擎已启动:
1. 展开 Sun Java System Application Server > JBI > Service Engines。
2. 右键单击 com.sun.bpelse-1.0-2 节点,然后从弹出菜单中选择 Start。
等待在 Output 窗口中显示 BPEL service engine started. 消息。
如果 Start 选项不可用(灰显),则表示该服务引擎已启动,您可以继续本教程中的下一部分。
打开、部署和测试示例项目
本部分从简单的 HelloWorld 业务流程开始。最初,该流程是一个同步流程并且不需要相关集。在该流程的开始只接收用户名,并且返回 Hello <User Name > 消息。在本部分中,您将打开并测试该流程。
本教程包含一个压缩的项目,名为 HelloWorldSample。
打开 HelloWorldSample 和 HelloWorldSampleCompApp 项目:
1. 在您的文件系统中,创建一个名为 HelloTut 的目录。
2. 下载 bpel-correl-helloworld.zip 文件并将其解压缩到 HelloTut 目录中。
3. 从 IDE 的主菜单中,选择 File > Open Project。
将打开 Open Project 向导。
4. 导航到 HelloTut > HelloWorldSample 目录,选择 HelloWorldSample 和 HelloWorldSampleCompApp 项目,然后单击 Open Project Folder。
将出现进度对话框,然后出现 Open Project 对话框。
注意:打开进度对话框,然后打开 Open Project 对话框通知您引用问题。
此时,由于复杂应用程序对 JBI 模块有依赖关系,因此在本教程中,这是正常行为。
您随后将会在该任务中解决这个断开的引用问题。
5. 单击 Close 关闭 Open Project 对话框。
6. 右键单击 HelloWorldSampleCompApp 项目,然后选择 Resolve Reference Problems。
7. 在 Resolve Reference Problems 对话框中,单击 Resolve。
8. 在 Browse Project 对话框中,导航到 HelloWorldSample 项目并选择该项目,然后单击 Open Project Folder。
现在,Resolve Reference Problems 对话框显示该问题已解决。
9. 单击 Close 关闭 Resolve Reference Problems 对话框。
部署 HelloWorldSampleCompApp 项目:
1. 右键单击 HelloWorldSampleCompApp,然后选择 Deploy Project。
将显示 Select Server 对话框。
2. 选择 Sun Java System Application Server 9 作为目标应用程序服务器,然后单击 OK。
3. 等待 Output 窗口中显示 BUILD SUCCESSFUL 消息。
4. 要验证 HelloWorldSampleCompApp 应用程序是否已成功部署,请切换到 Runtime 窗口。
5. 展开 Sun Java System Application Server > JBI > Service Assemblies。
如果在 Service Assemblies 节点下出现 HelloWorldSampleCompApp 节点,则表示该应用程序已成功部署。
测试 HelloWorldSampleCompApp 项目:
1. 在 Projects 窗口中,展开 HelloWorldSampleCompApp > Test > SendUserName1。
2. 双击 Output 以检查它的内容。
请注意,Output.xml 是空的。第一次运行测试将用真实的输出填充 Output.xml。以后运行测试将比较真实输出与 Output.xml 的内容。
3. 在 Projects 窗口中,右键单击 SendUserName1 节点,然后从弹出菜单中选择 Run。
在该测试中,您向流程中发送用户名,该流程将预设的 Hello Michael 消息发送回客户端以验证该流程工作状态正常。
注意:第一次运行是特例,原因是 Output.xml 是空的并且输出已写入到 Output。
注意 JUnit Test Results 窗口中的失败消息。
打开 Overwrite Empty Output 对话框,以便您可以确认要覆盖 Output.xml。
4. 单击 Yes。
第一次运行之后,Output 不再是空的。显示 Output.xml 的内容并且不被新的结果覆盖。
5. 在 P