{How-to} 將 jBPM-2 的預設資料庫改成 MySQL

說明:jBPM-2.0 預設所使用的資料庫系統為 “HyperSonic”,主要作為開發測試用,並不適合在企業的環境下使用。jBPM2 是以 “Hibernate” 作為 O-R Mapping 的 Frameowork 機制,可以支援多種資料庫系統。底下的步驟說明如何改成 MySQL 資料庫。

環境:

  • jBoss 3.2.5 above
  • jBPM 2.0
  • MYSQL 4.0.x above
  • J2SE SDK v 1.4.2_03 above
  • Apache Ant version 1.6.1 above
  • Eclipse 3.0.1

步驟:

  1. Check-out or download jbpm source-code from jBPM2 OpenSource Project
  2. 打開 Eclipse,新增一個空白的Java Projec (ex. jbpm2)
  3. 將jbpm的原始碼Copy至Eclipse的Workspace目錄的適當位置
  4. 更改jbpm下的build.property,設為自己的位置
  5. 更改jbpm的Project Property,將Ant_Home以及JBoss_Home設成自己開發環境的絕對路徑
  6. 將My Sql的JDBC Driver:mysql-connector-java-3.0.14-production-bin.jar複製到JBPM的Library(%jbpm.home%\lib)中
  7. Check-out or download jbpm source-code from jBPM-2

  8. 更改build.xml,在”configure.jboss.3.2.6+”中加入一段:
  9. 新增一個Library:mysql-connector-java-3.0.14-production-bin.jar至jbpm的Project Property中
  10. Eclipse Properties for jBPM2

  11. 在MySql中新增一個Database,jbpm2。以儲放jbpm所需的Table,另新增 mysql 帳號管理 jbpm2 的資料庫。(username/password: jbpm2/jbpm2)
  12.  
  13. 更改core/src/java/org/jbpm/persistence/hibernate/HibernateSession.java中的latestDefinitionQuery Property的程式碼為
    "select d from d in class " +
    "org.jbpm.model.definition.impl.DefinitionImpl " +
    "where d.name = ? order by d.version desc";
    
  14. 更改web/src/jbpm.war/WEB-INF/classes/ jbpm.properties如下:
  15. ### HIBERNATE configs #########################################
    hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
    hibernate.connection.driver_class=com.mysql.jdbc.Driver
    hibernate.connection.username=root
    hibernate.connection.password=
    hibernate.connection.url=jdbc:mysql://localhost/jbpm2?useUnicode=true&characterEncoding=utf-8
    hibernate.c3p0.min_size=2
    hibernate.c3p0.max_size=2
    hibernate.c3p0.timeout=120
    hibernate.c3p0.max_statements=50
    

    P.S. 中文支援問題
    對于MySQL,hibernate相應的driver設定成︰jdbc:mysql://localhost/jbpm2?useUnicode=true&characterEncoding=utf-8

  16. Run Ant,Build並且執行configure.jboss.3.2.6+
  17. 啟動jBpm
    (start the jbpm configuration of jboss with ‘%JBOSS_HOME%/bin/run.bat -c jbpm’)
  18. Run web\build.xml,執行deploy及deploy.process.archives
    in directory ${jbpm.home}/web run ‘ant deploy’.
     in directory ${jbpm.home}/web run ‘ant deploy.process.archives’.
  19. 查看MySQL Database即會發覺在Database中已經有JBPM相關的Table在裡面 (總共有 16 個Tables,下圖後兩個 Table 為自行開發時所新增的)
  20. jBPM Tables in MySQL

  21. Run
    http://localhost:8080/jbpm

    出現 jBPM 的Demo Workflow 的登入畫面

  22. jBPM2 的登入執行畫面

文章導覽

   

共有 7 則迴響

  1. 好啊,我留下mail!原則上你們跟william敲定就行了,我應該下班後都行

  2. Hello wordmar:

    我想找一天時間與我的 partner 約你與 william 一起出來喝個咖啡聊聊~
    是否方便留下你的聯絡方式?

  3. 厚…..
    我哪是什麼怪人啊,那只是一些雕蟲小技而己,
    花點時間,大家都會的。
    要能像Kenming大大這樣,可以做設計,
    用技術之所當用,行軟工之所當行才是厲害~~

  4. hi
    還記得上次介紹一個怪人嗎
    他現在已經能把jboss-jbpm拆掉
    改成mysql與tomcat上跑
    現在正在加jsf了
    有興趣可以找他

  5. Hello~

    建議您有執行的 error message,可以至 jBPM Forum 請教。

    How-to 上的使用及設定問題,請恕個人無法做這類的回應。

  6. I followed your tutorials, it seemed successful, but when i login as some users , some error occured, what’s trouble indeed?javax.servlet.ServletException && java.lang.NullPointerException

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *