天天看點

使用jBPM開發企業流程應用之在Tomcat上部署流程引擎及控制台

jBPM是jBoss的子項目,那麼其在jBoss上的部署就相當簡單了,基本不用廢話,因為在jBPM套裝版本(suite)中的server目錄就是一個已經部署好jBPM的jBoss,不過這個jBoss啟動的時候要連帶啟動很多應用,太慢了,有點受不了。是以我們最好在Tomcat上部署一個純潔的、獨立的jBPM應用,以便研究。

那麼,首先,我們需要建庫,在db目錄中有各種資料庫的建庫腳本,友善起見,我們用預設的jbpm.jpdl.hsqldb.sql,在hsqldb上建立資料庫。

hsqldb是個輕量級的、簡單易用的記憶體/文本資料庫,乃是用來做demo的上上佳品。具體怎麼使用hsqldb不是這裡讨論的重點。可以這樣運作hsqldb的控制台進行建庫:

java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

同時,假設你把資料存儲在文本檔案:

D:\_tech\jbpm\jbpm-jpdl-suite\_HSQLDB\huqi_jbpm.txt

那麼,我們的資料庫連接配接描述就是:

jdbc:hsqldb:file:D:\_tech\jbpm\jbpm-jpdl-suite\_HSQLDB\huqi_jbpm.txt

安裝好資料庫,建好表,我們就可以開始部署控制台和工作流引擎的war包了。deploy目錄中的jbpm-console.war正是此war包,在Tomcat上部署它,需要對它做一些改動和配置。

找到el-api.jar和el-ri.jar兩個jar包,把它們加入war包中相應的lib目錄。

在war包的classes目錄中找到hibernate.cfg.xml這個檔案,首先修改資料源,按照我們剛才建立的庫,将hibernate.connection.url屬性改為:

<property name="hibernate.connection.url">jdbc:hsqldb:file:D:_techjbpmjbpm-jpdl-suite_HSQLDBhuqi_jbpm.txt</property>

完整的hibernate資料源配置是:

    <!-- hibernate dialect -->

    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>

    <!-- JDBC connection properties (begin) -->

    <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>

    <property name="hibernate.connection.url">jdbc:hsqldb:file:D:_techjbpmjbpm-jpdl-suite_HSQLDBhuqi_jbpm.txt</property>

    <property name="hibernate.connection.username">sa</property>

    <property name="hibernate.connection.password"></property>

    <!-- JDBC connection properties (end) -->

另外,看到這一段了吧:

    <!-- following mapping files have a dependendy on  -->

    <!-- 'jbpm-identity.jar', mapping files            -->

    <!-- of the pluggable jbpm identity component.     -->

    <!-- Uncomment the following 3 lines if you        -->

    <!-- want to use the jBPM identity mgmgt           -->

    <!-- component.                                    -->

    <!-- identity mappings (begin) -->

    <mapping resource="org/jbpm/identity/User.hbm.xml"/>

    <mapping resource="org/jbpm/identity/Group.hbm.xml"/>

    <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>

    <!-- identity mappings (end) -->

這是jBPM自帶的組織系統,被用來配置設定流程參與者的。我們的建庫腳本中并沒有這3張表(當然,你有興趣的話也可以自己建這三張表),是以請把這3行注釋掉!則jBPM将會使用Tomcat的使用者系統來配置設定參與者。

順便說一下,這個版本的jBPM至少需要Tomcat5.0的版本去運作,否則會告訴你web.xml的格式不正确。

Tomcat的使用者系統都在Tomcat_Home/conf/tomcat-users.xml中定義,jBPM的設計器可以建立一個預設的測試流程,這個流程中涉及到的參與者在tomcat-users.xml中可以這樣定義,看例子:

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

  <role rolename="administrator"/>

  <role rolename="tomcat"/>

  <role rolename="role1"/>

  <role rolename="manager"/>

  <role rolename="admin"/>

  <role rolename="participant"/>

  <user username="ernie" password="ernie" roles="administrator,manager,participant"/>

  <user username="bert" password="bert" roles="participant"/>

  <user username="tomcat" password="tomcat" roles="tomcat"/>

  <user username="both" password="tomcat" roles="tomcat,role1"/>

  <user username="role1" password="tomcat" roles="role1"/>

  <user username="grover" password="grover" roles="participant"/>

  <user username="monster" password="monster" roles="participant"/>

  <user username="huqi" password="huqi" roles="administrator,manager,participant"/>

  <user username="cookie" password="cookie" roles="participant"/>

  <user username="admin" password="" roles="admin,manager"/>

</tomcat-users>

最後,把修改好的war包copy到Tomcat的webapps目錄中,啟動tomcat,通路控制台:

<a href="http://127.0.0.1:8080/jbpm-console/">http://127.0.0.1:8080/jbpm-console/</a>

OK!

     本文轉自胡奇 51CTO部落格,原文連結:http://blog.51cto.com/huqicto/280647,如需轉載請自行聯系原作者