randycch
   
發文: 47
積分: 3
|
於 2005-12-03 22:33
      
1. 使用軟體
Tomcat v5.5 MySQL v4.0.24 jBPM v3.0.2
2. 將 database 改成使用 MySQL
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:
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:
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
0
  |