說明: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
步驟:
- Check-out or download jbpm source-code from jBPM2 OpenSource Project
- 打開 Eclipse,新增一個空白的Java Projec (ex. jbpm2)
- 將jbpm的原始碼Copy至Eclipse的Workspace目錄的適當位置
- 更改jbpm下的build.property,設為自己的位置
- 更改jbpm的Project Property,將Ant_Home以及JBoss_Home設成自己開發環境的絕對路徑
- 將My Sql的JDBC Driver:mysql-connector-java-3.0.14-production-bin.jar複製到JBPM的Library(%jbpm.home%\lib)中
- 更改build.xml,在”configure.jboss.3.2.6+”中加入一段:
- 新增一個Library:mysql-connector-java-3.0.14-production-bin.jar至jbpm的Project Property中
- 在MySql中新增一個Database,jbpm2。以儲放jbpm所需的Table,另新增 mysql 帳號管理 jbpm2 的資料庫。(username/password: jbpm2/jbpm2)
- 更改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";
- 更改web/src/jbpm.war/WEB-INF/classes/ jbpm.properties如下:
- Run Ant,Build並且執行configure.jboss.3.2.6+
- 啟動jBpm
(start the jbpm configuration of jboss with ‘%JBOSS_HOME%/bin/run.bat -c jbpm’) - 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’. - 查看MySQL Database即會發覺在Database中已經有JBPM相關的Table在裡面 (總共有 16 個Tables,下圖後兩個 Table 為自行開發時所新增的)
- Run
http://localhost:8080/jbpm
出現 jBPM 的Demo Workflow 的登入畫面
### 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
好啊,我留下mail!原則上你們跟william敲定就行了,我應該下班後都行
Hello wordmar:
我想找一天時間與我的 partner 約你與 william 一起出來喝個咖啡聊聊~
是否方便留下你的聯絡方式?
厚…..
我哪是什麼怪人啊,那只是一些雕蟲小技而己,
花點時間,大家都會的。
要能像Kenming大大這樣,可以做設計,
用技術之所當用,行軟工之所當行才是厲害~~
Hi william:
太好了! 正需要這位朋友的協助!
過年後我想可以約他見面。
hi
還記得上次介紹一個怪人嗎
他現在已經能把jboss-jbpm拆掉
改成mysql與tomcat上跑
現在正在加jsf了
有興趣可以找他
Hello~
建議您有執行的 error message,可以至 jBPM Forum 請教。
How-to 上的使用及設定問題,請恕個人無法做這類的回應。
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