1. 使用軟體
3. 建立 jbpm.war 並部署至 Tomcat 中
Tomcat v5.52. 將 database 改成使用 MySQL
MySQL v4.0.24
jBPM v3.0.2
2-1. 解壓縮 jbpm-3.0.2.zip , 在 jbpm-3.0.2/lib 下 , 建立目錄 mysql
2-2. copy mssql 的 jdbc driver 至 jbpm-3.0.2/lib/mysql 中
2-3. 在 MySQL 上新增一個 database 名稱為 jbpm
2-4. 在 jbpm-3.0.2/src/resources 下 , 建立目錄 mysql , 並複製 hsqldb 中的檔案
2-5. 修改 jbpm-3.0.2/src/resources/mysql/create.db.hibernate.properties 檔 , 如下 :
1
2
3
4
5
6
7
8 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost/jbpm?useUnicode=true&characterEncoding=utf-8 hibernate.connection.username=sa hibernate.connection.password=sa hibernate.c3p0.min_size=1 hibernate.c3p0.max_size=3 hibernate.show_sql=true
2-6. 修改 jbpm-3.0.2/build.deploy.xml 檔 , target 為 create.db 的內容 , 如下 :
1
2
3
4
5
6
7
8 <target name="create.db" depends="declare.jbpm.tasks" description="Create a MySQL Database with the jbpm tables"> <jbpmschema actions="create" properties="${basedir}/src/resources/mysql/create.db.hibernate.properties"/> <loadidentities file="${basedir}/src/resources/mysql/identity.db.xml" properties="${basedir}/src/resources/mysql/create.db.hibernate.properties"/> <ant antfile="build.xml" target="build.processes" inheritall="false" /> <deploypar properties="${basedir}/src/resources/mysql/create.db.hibernate.properties"> <fileset dir="build" includes="*.par" /> </deploypar> </target>
2-7. 執行 Ant Build Target 'create.db' , 產生 table schema 至 MySQL
1 ant create.db -buildfile build.deploy.xml
3. 建立 jbpm.war 並部署至 Tomcat 中
3-1. 因為 Hibernate 不能將它的SessionFactory 與 Tomcat 的 JNDI bind , 所以必須修改 jbpm-3.0.2/src/java.jbpm/org/jbpm/db/JbpmSessionFactory.java 中的 getInstance()
1
2
3
4
5
6
7 public static JbpmSessionFactory getInstance() { if (instance==null) { log.debug("building singleton JbpmSessionFactory"); instance = buildJbpmSessionFactory(); } return instance; }
3-2. 修改 jbpm-3.0.2/src/resources/jbpm.sar/jbpm.hibernate.properties 檔(同2-5) , 如下 :
1
2
3
4
5
6
7
8 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost/jbpm?useUnicode=true&characterEncoding=utf-8 hibernate.connection.username=sa hibernate.connection.password=sa hibernate.c3p0.min_size=1 hibernate.c3p0.max_size=3 hibernate.show_sql=true
3-3. 修改 jbpm-3.0.2/src/resources/jbpm.sar/jbpm.properties 檔
1
2 將 jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory 標記起來 , 如下 : # jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory
3-4. 執行 Ant Build Target 'build' , 重新 compiler & package
1 ant build -buildfile build.xml
3-5. 修改 jbpm-3.0.2/build.deploy.xml 檔 , target 為 build.webapp 的內容 , 有一些相關的 library 必需要一起 package 起來 , 如下 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <target name="build.webapp" description="builds jbpm.war"> <ant antfile="build.xml" target="build.webapp" /> <mkdir dir="build/jbpm.war.dir" /> <copy todir="build/jbpm.war.dir"> <fileset dir="src/resources/jbpm.war" /> </copy> <copy todir="build/jbpm.war.dir/WEB-INF/lib"> <fileset dir="build" includes="jbpm*.jar" /> <fileset dir="lib/dom4j" includes="*.jar" /> <fileset dir="lib/jsf" includes="*.jar" /> <fileset dir="lib/jaxen" includes="*.jar" /> <fileset dir="lib/commons" includes="commons-digester-*.jar, commons-beanutils-*.jar" /> <fileset dir="lib/mysql" includes="*.jar" /> <fileset dir="lib/hibernate" includes="*.jar" /> <fileset dir="lib/jboss" includes="antlr*.jar, asm*.jar, bsh*.jar, cglib*.jar, commons-*.jar, hibernate*.jar" /> </copy> <jar destfile="build/jbpm.war"> <fileset dir="build/jbpm.war.dir" /> </jar> </target>
3-6. 執行 Ant Build Target 'build.webapp' , 產生 jbpm.war
1 ant build.webapp -buildfile build.deploy.xml
3-7. 部署 jbpm.war 至你的 Tomcat 的 webapp 目錄下 , 並重新啟動 Tomcat .
3-8. 測試 http://localhost:8080/jbpm