本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

使用 JSF 组件为 BPEL 流程和人员任务开发 Web 应用程序

Business Process Choreographer 提供了多个 JavaServer Faces (JSF) 组件。 您可以扩展和集成这些组件以将业务流程和人员任务功能添加到 Web 应用程序。

关于本任务

您可以使用 IBM® Integration Designer 来构建 Web 应用程序。 对于包括人员任务的应用程序,可以生成 JSF 定制客户机。 有关生成 JSF 客户机的更多信息,请转至 Integration Designer的文档。

还可使用 Business Process Choreographer 提供的 JSF 组件开发自己的 Web 客户机。

过程

  1. 创建动态项目并更改 web Project Features 属性以包含 JSF 基本组件。

    有关创建 Web 项目的更多信息,请转至 Integration Designer的文档。

  2. 添加必备的 Business Process Choreographer Explorer Java™ 归档 (JAR 文件)。
    将以下文件添加到项目的 WEB-INF/lib 目录中:
    • bpcclientcore.jar
    • bfmclientmodel.jar
    • htmclientmodel.jar
    • bpcjsfcomponents.jar
    IBM Business Automation Workflow中,所有这些文件都位于以下目录中:
    • 针对 Windows 操作系统在 Windows 平台上: install_root\ProcessChoreographer\client
    • 针对 Linux 操作系统针对 UNIX 操作系统在 Linux®和 UNIX 平台上: install_root/ProcessChoreographer/client
  3. 将需要的 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>
  4. 在 JSF 应用程序中添加 Business Process Choreographer Explorer JSF 组件。
    1. 在 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" %>
    2. <f:view> 标记添加到 JSP 页面的主体,并将 <h:form> 标记添加到 <f:view> 标记。
    3. 在 JSP 文件中添加 JSF 组件。

      根据应用程序的不同,在 JSP 文件中添加 List 组件、Details 组件、CommandBar 组件或 Message 组件。 对于每个组件,可以添加多个实例。

    4. 在 JSF 配置文件中对受管 Bean 进行配置。

      在缺省情况下,配置文件是 faces-config.xml 文件。 此文件位于 web 应用程序的 WEB-INF 目录中。

      根据在 JSP 文件中添加的组件的不同,还需要在 JSF 配置文件中添加对查询和其他包装器对象的引用。 为了确保正确地进行错误处理,还需要在 JSF 配置文件中定义错误页面的错误 Bean 和导航目标。 请确保使用 BPCError 作为错误 Bean 的名称,使用 error 作为错误页的导航目标的名称。
      <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>
      
      在触发了错误页的错误情况下,将对错误 Bean 设置此异常。
    5. 实现支持 JSF 组件所需的定制代码。
  5. 部署该应用程序。
    如果要在网络部署环境中部署应用程序,请将目标资源 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

结果

已部署的 Web 应用程序包含 Business Process Choreographer Explorer 组件提供的功能。

下一步

如果您要将定制 JSP 用于流程和任务消息,那么必须将用于部署 JSP 的 Web 模块映射到定制 JSF 客户机映射到的相同服务器。