
使用 JSF 组件为 BPEL 流程和人员任务开发 Web 应用程序
Business Process Choreographer 提供了多个 JavaServer Faces (JSF) 组件。 您可以扩展和集成这些组件以将业务流程和人员任务功能添加到 Web 应用程序。
关于本任务
您可以使用 IBM® Integration Designer 来构建 Web 应用程序。 对于包括人员任务的应用程序,可以生成 JSF 定制客户机。 有关生成 JSF 客户机的更多信息,请转至 Integration Designer的文档。
还可使用 Business Process Choreographer 提供的 JSF 组件开发自己的 Web 客户机。
过程
- 创建动态项目并更改
web Project Features属性以包含 JSF 基本组件。有关创建 Web 项目的更多信息,请转至 Integration Designer的文档。
- 添加必备的 Business Process Choreographer Explorer Java™ 归档 (JAR 文件)。将以下文件添加到项目的 WEB-INF/lib 目录中:
- bpcclientcore.jar
- bfmclientmodel.jar
- htmclientmodel.jar
- bpcjsfcomponents.jar
在 IBM Business Automation Workflow中,所有这些文件都位于以下目录中:
在 Windows 平台上: install_root\ProcessChoreographer\client
在 Linux®和 UNIX 平台上: install_root/ProcessChoreographer/client
- 将需要的 EJB 引用添加到 Web 应用程序部署描述符 web.xml 文件。
<ejb-ref id="EjbRef_1"> <ejb-ref-name>ejb/BusinessProcessHome</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>com.ibm.bpe.api.BusinessFlowManagerHome</home> <remote>com.ibm.bpe.api.BusinessFlowManager</remote> </ejb-ref> <ejb-ref id="EjbRef_2"> <ejb-ref-name>ejb/HumanTaskManagerEJB</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>com.ibm.task.api.HumanTaskManagerHome</home> <remote>com.ibm.task.api.HumanTaskManager</remote> </ejb-ref> <ejb-local-ref id="EjbLocalRef_1"> <ejb-ref-name>ejb/LocalBusinessProcessHome</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.ibm.bpe.api.LocalBusinessFlowManagerHome</local-home> <local>com.ibm.bpe.api.LocalBusinessFlowManager</local> </ejb-local-ref> <ejb-local-ref id="EjbLocalRef_2"> <ejb-ref-name>ejb/LocalHumanTaskManagerEJB</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.ibm.task.api.LocalHumanTaskManagerHome</local-home> <local>com.ibm.task.api.LocalHumanTaskManager</local> </ejb-local-ref> - 在 JSF 应用程序中添加 Business Process Choreographer Explorer JSF 组件。
- 在 JavaServer Pages (JSP) 文件中添加应用程序所需的标记库引用。 通常,需要 JSF 和 HTML 标记库以及 JSF 组件所需的标记库。
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@ taglib uri="http://com.ibm.bpe.jsf/taglib" prefix="bpe" %>
- 将
<f:view>标记添加到 JSP 页面的主体,并将<h:form>标记添加到<f:view>标记。 - 在 JSP 文件中添加 JSF 组件。
根据应用程序的不同,在 JSP 文件中添加 List 组件、Details 组件、CommandBar 组件或 Message 组件。 对于每个组件,可以添加多个实例。
- 在 JSF 配置文件中对受管 Bean 进行配置。
在缺省情况下,配置文件是 faces-config.xml 文件。 此文件位于 web 应用程序的 WEB-INF 目录中。
根据在 JSP 文件中添加的组件的不同,还需要在 JSF 配置文件中添加对查询和其他包装器对象的引用。 为了确保正确地进行错误处理,还需要在 JSF 配置文件中定义错误页面的错误 Bean 和导航目标。 请确保使用BPCError作为错误 Bean 的名称,使用error作为错误页的导航目标的名称。
在触发了错误页的错误情况下,将对错误 Bean 设置此异常。<faces-config> ... <managed-bean> <managed-bean-name>BPCError</managed-bean-name> <managed-bean-class>com.ibm.bpc.clientcore.util.ErrorBeanImpl </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> ... <navigation-rule> ... <navigation-case> <description> The general error page. </description> <from-outcome>error</from-outcome> <to-view-id>/Error.jsp</to-view-id> </navigation-case> ... </navigation-rule> </faces-config> - 实现支持 JSF 组件所需的定制代码。
- 在 JavaServer Pages (JSP) 文件中添加应用程序所需的标记库引用。
- 部署该应用程序。如果要在网络部署环境中部署应用程序,请将目标资源 Java 命名和目录接口 (JNDI) 名称更改为可在单元中找到业务流程管理器和人员任务管理器 API 的值。 如果在同一单元内名为 clusterName 的集群上配置流程容器,那么名称具有以下结构:
cell/clusters/clusterName/com/ibm/bpe/api/BusinessFlowManagerHome cell/clusters/clustername/com/ibm/task/api/HumanTaskManagerHome将 EJB 引用映射至 JNDI 名称,或者手动将这些引用添加至 ibm-web-bnd.xmi 文件。
下表列示了引用绑定及其缺省映射。
表 1. 从引用绑定到 JNDI 名称的映射 引用绑定 JNDI 名称 注释 ejb/BusinessProcessHome com/ibm/bpe/api/BusinessFlowManagerHome Remote session bean ejb/LocalBusinessProcessHome com/ibm/bpe/api/BusinessFlowManagerHome 本地会话 Bean ejb/HumanTaskManagerEJB com/ibm/task/api/HumanTaskManagerHome Remote session bean ejb/LocalHumanTaskManagerEJB com/ibm/task/api/HumanTaskManagerHome 本地会话 Bean