本教程将讲述如何使用 JavaServer Page (JSP) 基于 Web 的用户界面 (UI) 启动一个 BPEL 业务流程。
大约 1 个小时
本教程包括下列主题:
| 概述 | ||
| 情景 | ||
| 前提条件 | ||
| 创建 JavaServer Page 用户界面 | ||
| 测试启动 MyLoanFlow 的 Java UI | ||
| 总结 | ||
| 相关信息 | ||
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以根据 Internet 连接的不同,响应时间可能会比较慢。)
注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
在本教程中,您将创建一个名为 invokeMyLoanFlow.jsp 的文件,其中包含要构成用户界面的 HTML 和 JSP 标记。该用户界面则提交贷款申请数据并启动 MyLoanFlow BPEL 流程。 本教程提供了构建 JSP 逻辑所需的步骤。
您的 JSP 应用程序与某个 JSP 应用程序的其他文件一起部署到 Oracle BPEL Process Manager 安装的 D:\orabpel\samples\tutorials\102.InvokingProcesses 目录树中。 该应用程序树为该 Web 应用程序提供了定位 JSP 文件引用的 Java API 代码所需的相应配置文件。
该 JSP 应用程序启动 MyLoanFlow BPEL 实例之后,您可以使用 Oracle BPEL Console 的 Visual Flow 视图查看该 BPEL 流程。 您将使用 StarLoanUI 完成 StarLoan 服务的贷款意向的手动处理。
用于启动 MyLoanFlow BPEL 流程的 JSP 应用程序提供了一个 HTML 表单用户界面来提交贷款申请:
您在 HTML 表单域中输入数据,然后单击 Send Application 提交数据并启动 MyLoanFlow BPEL 流程来管理贷款申请。 该同一 JSP 页面还用于接收 HTML 表单域和构建贷款申请 XML 文档。 贷款申请文档用作 MyLoanFlow BPEL 流程的输入。该流程则通过使用启动该 BPEL 流程所需的 Java API 调用启动。
该 JSP 应用程序逻辑以下列流图表示:
调用 MyLoanFlow BPEL 流程之后,您使用 Oracle BPEL Console 监视该流程,并使用 StarLoanUI 接受贷款申请。
开始本教程之前,您应该:
| 1. |
按照名为“安装 Oracle BPEL Designer 和 Oracle BPEL Process Manager”的 OBE 教程讲述的步骤,安装 Oracle BPEL Designer 和 Oracle BPEL Process Manager 服务器。 |
|||||||||||||||
| 2. |
启动 Oracle BPEL PM 服务器。 . |
|||||||||||||||
| 3. |
完成名为“使用 BPEL 调用异步业务服务”的 OBE 教程。 注意:如果您尚未完成“使用 BPEL 调用异步业务服务”教程,则执行下列任务:
|
|||||||||||||||
要构建一个包含可提交贷款申请的 HTML 表单的 JSP 文件,执行下列步骤:
| 1. |
要在 D:\orabpel\samples\tutorials\102.InvokingProcesses\jsp 目录中创建一个名为 invokeMyLoanFlow.jsp 的文本文件,使用您喜欢的文本编辑器,启动命令窗口,然后输入下列内容: cd D:\orabpel\samples\tutorials\102.InvokingProcesses\jsp notepad invokeMyLoanFlow.jsp 注意:本教程使用 Notepad 作为文本编辑器,并假定 Oracle BPEL Process Manager 文件安装在 D: 驱动器中。 |
|||||||||||||||
| 2. |
要创建上面流程图表示的 JSP 应用程序的基本结构,请在文本编辑器中输入下列 JSP 声明、HTML 标记和 JSP scriptlet: <%@page import="com.oracle.bpel.client.Locator" %> <%@page import="com.oracle.bpel.client.NormalizedMessage" %> <%@page import="com.oracle.bpel.client.dispatch.IDeliveryService" %>
注意: JSP 应用程序代码骨架:
|
|||||||||||||||
| 3. |
要显示 HTML 表单界面,将下列 HTML 标记(粗体)添加到 if 语句块中,紧挨在 HTML 注释“”的后面:
注意: 标记未指定任何 action 属性。 因此,当提交表单数据时,默认操作会使表单数据发送到生成该表单的同一个 JSP 应用程序页面中。 用于处理所提交数据的 Java 代码将在后续步骤中添加到 else 代码块中。 |
|||||||||||||||
要创建贷款申请 XML 文档并使用 Oracle BPEL Java API 调用启动 MyLoanFlow 应用程序,执行下列步骤:
| 1. |
在 else 块中,紧邻 invokeMyLoanFlow.jsp 的 Java 注释“// 1. Get form fields”下方,添加下面获取 HTML 表单参数值的 Java 代码(粗体): <% } 注意:SSN 域值已在 if 语句前获得。 |
| 2. |
要在名为 xml 的 String 变量中构建贷款申请 XML 文档,在 Java 注释“// 2. Create loan application XML document”后面添加下列 Hava 代码(粗体): <% } 注意:XML 文档是使用从 HTML 表单参数中获取的值构建的。 |
| 3. |
要启动 MyLoanFlow BPEL 流程,请在 Java 注释 <% } 注意: Locator 类用于连接指定域为 default 和口令为 bpel 的 BPEL 服务器(与 BPEL Console Web 页面中使用的域和口令相同)。 使用 locator 对象的 lookupService() 方法创建 IDeliveryService 实例。 在最后一个语句中,IDeliveryService 的 post() 方法启动 MyLoanFlow BPEL 流程。 post() 方法调用的最后一个参数是一个 NormalizedMessage 对象,其中在其有效载荷部分包裹了该 XML 文档,从而将该贷款文档用作已启动 BPEL 流程的输入。 |
| 4. |
在 else 块的最后(结束花括号“}”之前),添加下列 HTML 和 JSP 代码(粗体)来提供反馈,以表明 MyLoanFlow BPEL 流程已经使用提交的 SSN 值启动: <% } 注意:添加到反馈代码中的 BPEL Console 超文本连接简化了对于 Web 界面的访问,以监视该 JSP 应用程序所启动 BPEL 流程。
|
| 5. | 保存 invokeMyLoanFlow.jsp 文件的内容,关闭编辑器。 |
要测试接受贷款申请并启动 MyLoanFlow 来处理该申请的 JSP 界面,请执行下列步骤:
| 1. |
要将该 JSP 用户界面部署到 Oracle BPEL Process Manager 中,请在命令窗口中输入下列命令: cd <驱动器>:\orabpel\samples\tutorials\102.InvokingProcesses obant |
| 2. |
要访问该 JSP 应用程序,打开一个新的浏览器窗口,然后输入下列 URL: http://localhost:9700/InvokingProcessesUI/invokeMyLoanFlow.jsp |
| 3. | 要启动 MyLoanFlow BPEL 流程,在 Customer Name 域中输入姓名 Jane Doe(或者您自己的姓名),然后单击 Send Application: 注意:此时显示一个确认页面,指出该 BPEL 流程已经使用 HTML 表单中提供的 SSN 启动。 |
| 4. | 要查看已经启动的 MyLoanFlow BPEL 流程实例,单击确认页面中的 BPEL Console 链接:
|
| 5. | 使用口令 bpel 登录 BPEL Console,然后单击 Login: |
| 6. | 要查看 MyLoanFlow 实例的可视化流程图,单击 In-Flight BPEL Process Instances 1 - 3 标题下面,instance 列中的 nnn: Instance #nnn of MyLoanFlow 链接: |
| 7. | 要验证您看到的 BPEL 流程实例是否正确,请单击名为 client (initiate) 的第一个 receive 活动: 注意:此时打开 Activity Audit Trail 窗口,显示该 BPEL 流程收到的输入: 注意:<input> 元素包含一个 关闭 Activity Audit Trail 窗口。 |
| 8. | 滚动至活动的可视流程的最后: 注意:starLoan (onResult) 活动正在等待完成。 单击 starLoan (onResult) 活动,确认它正在等待完成: 关闭该活动的 Activity Audit Trail。 |
| 9. | 要完成该 StarLoan 任务,打开一个新的浏览器窗口,然后输入下列 URL: http://localhost:9700/StarLoanUI 单击 Assign APR Task 链接。 |
| 10. | 在 Assign APR Task Web 页面中,确认贷款申请详细信息与 invokeMyLoanFlow.jsp 应用程序发送的信息相对应。 单击 Approve 批准该贷款申请: 注意:会显示下面的确认页面以表明已完成了 Assign APR Task: 关闭浏览器窗口。 |
| 11. | 在 BPEL Console 显示 BPEL 流程可视流的浏览器窗口中,单击 Refresh View 链接: |
| 12. | 要确认 StarLoan 异步过程已经完成,滚动至 starLoan (initiate) 活动即可注意到它已经完成。 要查看在该流程结尾处选择的贷款意向,滚动至该可视流的最后: 注意:选择了 UnitedLoan 贷款意向。
|
| 13. | 要查看 UnitedLoan 服务返回的贷款意向,单击 client (onResult) 活动: 注意:Activity Audit Trail 窗口显示 United Loan 生成的贷款意向的 XML 数据: 关闭 Activity Audit Trail 窗口,注销 BPEL Console 并关闭浏览器窗口。
|
| 14. | 要关闭 Oracle BPEL Process Manager,在命令窗口中输入下列命令: cd <驱动器>:\orabpel\bin shutdownOraBPEL.bat
|
在本课程中,您学习了如何执行下列任务:
|
创建一个包含一个 HTML 表单界面的 JSP 应用程序,该界面将提供的数据提交到 BPEL 流程。 |
|
|
编写连接 BPEL Process Manager 的 Java 代码,并使用从 HTML 表单接受的数据启动 BPEL 流程。 |
|
| 在 Oracle BPEL Console 中使用可视流程图查看 BPEL 流程的活动审计跟踪。 |
| 有关本 OBE 教程的问题,请在 OBE 论坛上提问。 | |
| 要了解 Oracle BPEL 技术的详细信息,请参阅 OTN 网站上的其他 OBE。 |