首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Liferay Portal 整合 jBPM 工作流引擎完整配置指南

     編輯:Java 相關知識

Liferay 4.2.1 部署 jBPM 3.1 步驟詳解

Liferay Portal 內建工作流引擎支援 jBPM,但預設未啟用。本文記錄在 Tomcat 環境下,使用 HSQLDB 內嵌資料庫快速部署並驗證 jBPM 工作流功能的完整步驟。

環境準備

  1. 下載 Liferay Portal Professional 4.2.1(Bundled with Tomcat for JDK 5.0)
  2. 保持預設 HSQLDB 資料庫配置,無需修改 portal-ext.properties
  3. 從官網下載兩個關鍵 WAR 檔:
    • liferay-portal-servicemix-4.2.1.war
    • liferay-portal-jbpm-4.2.1.war

部署步驟

# 1. 重新命名 WAR 檔(避免衝突)
mv liferay-portal-jbpm-4.2.1.war jbpm-web.war
mv liferay-portal-servicemix-4.2.1.war servicemix-web.war

# 2. 部署到 Tomcat
cp jbpm-web.war servicemix-web.war $TOMCAT_HOME/webapps/

# 3. 初始化 jBPM 資料庫結構
cp $TOMCAT_HOME/webapps/jbpm-web/WEB-INF/sql/hsqldb.create.jbpm.3.1.sql \
   $TOMCAT_HOME/bin/jbpm.script

# 4. 啟動 Tomcat
$TOMCAT_HOME/bin/startup.sh

驗證與測試流程

  1. 開啟 https://localhost:8080/,使用 test@liferay.com / test 登入
  2. 新增 Workflow Portlet 到頁面
  3. 切換到 Definitions 標籤,點選 Add
  4. 在文字區域貼上以下流程定義(JPML 3.1 格式):
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="Example Process">
  <start-state name="start">
    <task>
      <assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler">
        <companyId>liferay.com</companyId>
        <type>user</type>
        <name>test@liferay.com</name>
      </assignment>
      <controller>
        <variable name="text:color" />
        <variable name="text:size" />
      </controller>
    </task>
    <transition name="to_t" to="t"/>
  </start-state>

  <task-node name="t">
    <task name="t">
      <controller>
        <variable name="text:color" access="read" />
        <variable name="text:size" access="read"/>
      </controller>
      <assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler">
        <companyId>liferay.com</companyId>
        <type>user</type>
        <name>test@liferay.com</name>
      </assignment>
    </task>
    <transition name="to_end" to="end"/>
  </task-node>

  <end-state name="end"/>
</process-definition>
  1. 送出定義,系統自動部署流程
  2. 進入 Tasks View,選擇 Manage 執行任務

關鍵配置細節說明

  • IdentityAssignmentHandler:Liferay 專用指派處理器,整合 Portal 使用者/角色/組織體系
  • 變數控制器:<controller> 定義任務表單欄位,access="read" 表示唯讀傳遞
  • 資料庫腳本:HSQLDB 專用建表腳本必須命名為 jbpm.script 放入 bin/ 目錄,Tomcat 啟動時自動執行

常見問題排查

現象原因解決
工作流 Portlet 不顯示jbpm-web.war 未正確部署檢查 Tomcat log、確認 WAR 解壓縮無誤
流程部署失敗JPML 語法錯誤或命名空間不符對照 jBPM 3.1 XSD 驗證 XML
任務指派失效使用者不存在或 companyId 不匹配確認 Liferay 使用者資料與指派設定一致
資料表不存在jbpm.script 未被執行手動在 HSQLDB 執行建表 SQL

進階擴充方向

  1. 自訂任務控制器:實作 TaskController 介面,支援複雜表單渲染與驗證
  2. 外部資料庫:修改 portal-ext.properties 指向 MySQL/PostgreSQL/Oracle,並下載對應 JDBC 驅動
  3. 整合 ServiceMix ESB:透過 servicemix-web.war 實現工作流與企業服務總線整合
  4. 流程版本管理:利用 jBPM 版本控制功能,支援流程熱部署與平滑升級

完成上述配置後,Liferay 即具備完整的工作流引擎能力,可支援表單審核、文件簽核、業務流程自動化等企業級應用場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved