由
、
贡献和维护
2007 年 10 月 [修订版本号:V1-3]
本文档适用于 NetBeans IDE 6.0 发行版。
由 NetBeans 中文社区的
翻译(2007
年 2 月)
在本教程中,您将创建一个简单的 SOA 项目。接着您将把一个 WSDL 文档添加到项目,并使用 WSDL 编辑器的“伙伴”视图来添加消息、伙伴链接类型、端口类型和操作。然后您将创建一个符合应用程序项目,并使用复合应用程序(服务组合件)编辑器来修改项目配置。本教程还将图解一个基本的场合,说明文件绑定组件是如何用在复合应用程序中的。
配置和启动 GlassFish 应用程序服务器
在您安装完全版的 6.0 时,就已经包括了 GlassFish 应用程序服务器。NetBeans 将在需要的时候自动启动 AppServer。
要启动 GlassFish 应用程序服务器:
- 如果看不到“服务”窗口,请选择“窗口”>“服务”。
- 在“服务”窗口中,展开“服务器”节点。
“服务器”节点应该包含有 GlassFish 应用程序服务器的子节点。如果 GlassFish 应用程序服务器没有出现,请转到要配置
GlassFish 应用程序服务器。

- 右键单击 GlassFish 应用程序服务器节点,选择“启动”。
“输出”窗口会显示应用程序启动的日志信息。如果看不到“输出”窗口,请选择“窗口”>“输出”>“输出”。
当消息“Application server 启动完毕”显示到“输出”窗口时,应用程序服务器就正在运行了。
注意:把应用程序部署到 GlassFish 应用程序服务器时,将自动启动服务器。这样,您就不必手动启动应用程序服务器。
注意:以下过程说明如何配置 IDE 以使用另一个版本的 GlassFish V2 应用程序服务器。
要配置 GlassFish V2 应用程序服务器:
您可能想使用不同版本的应用程序服务器,而不是随 NetBeans 6.0 提供的那个。例如,您也许想从
GlassFish 社区网站下载并安装更新版本的 GlassFish
V2 应用程序服务器。
以下过程说明如何配置 NetBeans 6.0 IDE 以使用另一个版本的 GlassFish V2 应用程序服务器。假设您已经下载并安装了另一个版本的应用程序服务器。
- 在“服务”窗口,右键单击“服务器”节点,从弹出菜单选择“添加服务器”。
“添加服务器实例”对话框会打开。
- 在“选择服务器”页,从列表选择“GlassFish V2”。
- 单击“下一步”。
“平台文件夹位置”页会打开。
- 在“平台位置”字段,使用“浏览”按钮来导航并选择应用程序服务器的安装位置。
如果您把 GlassFish 应用程序服务器安装到了缺省位置,请参考表 1 来找到安装位置。否则,请导航到您安装
GlassFish V2 应用程序服务器的位置。
表 1:应用程序服务器的缺省安装目录
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 |
- 选中“注册本地缺省域”单选按钮,单击“下一步”。
- 输入域管理员的用户名和口令。
如果您在安装过程中接受了缺省值,用户名是 admin,口令是 adminadmin。
- 单击“完成”。
页首
创建 BPEL 模块项目
在本节中,您将创建一个 BPEL 模块项目 SynchronousSample。
要创建 SynchronousSample 项目:
- 从主菜单中,选择“文件”>“新建项目”。
“新建项目”向导会打开。
- 在“类别”列表中,选择“SOA”节点,再在“项目”列表中,选择“BPEL 模块”节点。
- 单击“下一步”。
- 在“项目名称”字段中,键入“SynchronousSample”。
- (可选)在“项目位置”字段中,使用“浏览”按钮来导航并选择一个不同的文件夹来用作 IDE 保存项目文件的位置。
- 单击“完成”。
“项目”窗口现在已包含代表 BPEL 模块项目“SynchronousSample”的节点。

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

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

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

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

- 要保存您的更改,请在“项目”窗口中,选中“SynchronousSample”项目节点,再从主菜单中,选择“文件”>“全部保存”。
页首
创建 WSDL 文档
在本节中,您将把一个 WSDL 文件添加到 BPEL 模块项目中,然后配置该 WSDL 文档的组件。
要创建 SynchronousSample.wsdl:
- 在“项目”窗口中,展开“SynchronousSample”项目节点,然后右键单击“进程文件”点,选择“新建”>“WSDL
文档”。
“新建 WSDL 文档”向导会打开。
- 在“名称和位置”页中,进行如下操作:
- 在“文件名称”字段中,键入“SynchronousSample”。
- 选中“导入 XML 方案文件”复选框。
- 在“XML 方案”字段中,单击“浏览”按钮。
“添加导入”对话框会打开。该对话框显示您可以导入的 XML 方案。
- 展开“按文件”>“SynchronousSample”>“进程文件”,选中“SynchronousSample.xsd”。
确保“导入”列中代表“SynchronousSample.xsd”行的复选框被选中。

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

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

页首
创建 BPEL 进程
在本节中,您将为 BPEL 进程创建一个 .bpel 文件。然后您将把一个伙伴链接和三个活动添加到进程中。
要创建 SynchronousSample.bpel:
- 在“项目”窗口中,然后右键单击“进程文件”点,选择“新建”>“BPEL 进程”。
“新建 BPEL 进程”向导会打开。
- 在“文件名称”字段中,键入“SynchronousSample”。
- 单击“完成”。
在“项目”窗口中,“进程文件”节点现已包含一个标为“SynchronousSample.bpel”的子节点。
“源编辑器”已包含一个代表该 BPEL 进程 SynchronousSample.bpel 的选项卡,并打开了“BPEL 设计器”的“设计”视图。

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

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

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

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

- 要保存您的更改,请在“项目”窗口中,选中“SynchronousSample”项目节点,再从主菜单中,选择“文件”>“全部保存”。
页首
创建和编辑复合应用程序
在部署 BPEL 模块项目前,您必须把 JBI 模块添加到部署项目。部署项目使得应用程序服务器能够取得服务组合件,进而允许运行它的服务单元。
要创建符合应用程序项目并添加 JBI 模块:
- 从主菜单中,选择“文件”>“新建项目”。
“新建项目”向导会打开。
- 在“类别”列表中选中“SOA”节点,在“项目”列表中,选中“复合应用程序”节点。
- 单击“下一步”。
- 在“项目名称”字段中,键入“SynchronousSampleApplication”。
- 单击“完成”。
“项目”窗口现已包含代表复合应用程序“SynchronousSampleApplication”的项目节点。
- 在“项目”窗口中,右键单击“SynchronousSampleApplication”项目节点,从弹出菜单中选择“添加
JBI 模块”。
“选择项目”对话框会打开。
- 选中您在本教程中刚创建的“SynchronousSample”项目,单击“添加项目 JAR 文件”。
“选择项目”对话框会关闭。
- 在“项目”窗口中,展开“SynchronousSampleApplication”项目节点,然后展开“JBI
模块”节点。
注意已添加了一个“SynchronousSample.jar”节点。

要部署复合应用程序:
- 右键单击“SynchronousSampleApplication”项目,然后选择“部署项目”。
如果在“输出”窗口中出现类似下面的消息,就表明部署成功:
生成成功(总共时间:11 秒)
页首
测试复合应用程序
通过添加测试用例、绑定到操作、提供输入然后使用测试程序,您可以增强复合应用程序项目。
要测试 SynchronousSampleApplication 复合应用程序:
- 在“项目”窗口,展开 SynchronousSampleApplication 项目节点,右键单击“测试”节点,从弹出菜单选择“新建测试用例”。
“新建测试用例”向导会打开。
- 接受缺省用例名称“TestCase1”,单击“下一步”。
- 在“选择 WSDL 文档”页中,展开“SynchronousSample”节点,选中“SynchronousSample.wsdl”,单击“确定”。
- 在“选择测试操作”页中,选中“SynchronousSampleOperation”,单击“完成”。
注意下面几点:
- 在“项目”窗口中,“测试”下新增加了一个“TestCase1”节点。
- “TestCase1”节点包含两个子节点:“Input”和“Output”
。
- “源编辑器”包含一个代表输入文件 Input.xml 的选项卡。

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

页首
小结
在本教程中,您创建了一个简单的 BPEL 模块项目 SynchronousSample 和一个复合应用程序项目 SynchronousSampleApplication。然后你设计了一个
XML 方案文件和一个 WSDL 文件。您学习了如何设计 BPEL 进程并部署它。您还学习了如何创建并进行复合应用程序的测试运行。
完成本教程中的步骤后,您已经生成了样例同步 BPEL 进程项目,它可从 IDE 中取得(“新建”>“项目”>“样例”>“SOA”>“同步 BPEL
进程”)。