1. 前言
最近在某個運營商電子運維支撐項目中,需要使用工作流技術來幫助運營商實現運維工作電子化、流程化。工作流可以將好的管理思想淋漓盡致地展現出來,它無疑是企業資訊化建設過程中進行流程固化、流程優化和應用集成的重要手段和有效工具。在對市場上的工作流產品進行選型,同時也注意到幾個有特色的開源工作流,比如OsWorkflow、Shark、jBPM等。
jBPM作為功能強大的工作流引擎和業務流程管理平臺(BPM),它支援企業級應用(集群),具有靈活性、擴展性、企業應用集成(EAI)等良好特性。
現在,將jBPM3.1完整安裝過程寫出來與大家共用,一起來研究jBPM。
2. 必備軟體
a) Oracle10g
b) Tomcat-5.0.30
c) Ant-1.6.5
d) jBPM3.1-alpha2
3. 將數據庫替換成Oracle10g
a) 從sourceforge網站下載jbpm-3.1-alpha2.zip(http://switch.dl.sourceforge.net/sourceforge/jbpm/jbpm-3.1-alpha2.zip)。
b) 解壓縮jbpm-3.1-alpha2.zip到jbpm-3.1-alpha2目錄。
c) 在 jbpm-3.1-alpha2/lib下,建立目錄 oracle。
d) 複製Oracle10g的jdbc驅動ojdbc14.jar到jbpm-3.1-alpha2/lib/oracle目錄下。
e) 在Oracle10g數據庫伺服器上,使用dbca工具創建數據實例,名稱為JBPM,並且添加數據庫訪問用戶JBPM/JBPM。
f) 在 jbpm-3.1-alpha2/src/resources目錄下,建立目錄oracle,並複製 hsqldb 目錄下的2個文件: identity.db.xml和create.db.hibernate.properties到oracle目錄下。
g) 修改 jbpm-3.1-alpha2/src/resources/oracle/create.db.hibernate.properties文件, 如下 :
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
# for Oracle 8 compatibility use
#hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@192.168.0.20:1521:JBPM
hibernate.connection.username= JBPM
hibernate.connection.password= JBPM
hibernate.show_sql=true
hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=3
h) 修改 jbpm-3.1-alpha2/build.deploy.xml文件中 target 為 create.db 的內容 , 如下:
<target name="create.db" depends="declare.jbpm.tasks" description="creates a oracle database with the jbpm tables and loads the processes in there">
<jbpmschema actions="create" properties="${basedir}/src/resources/oracle/create.db.hibernate.properties"/>
<loadidentities file="${basedir}/src/resources/oracle/identity.db.xml" properties="${basedir}/src/oracle/hsqldb/create.db.hibernate.properties"/>
<ant antfile="build.xml" target="build.processes" inheritall="false" />
<deploypar properties="${basedir}/src/resources/oracle/create.db.hibernate.properties">
<fileset dir="build" includes="*.par" />
</deploypar>
</target>
i) 複製c3p0-0.8.5.2.jar到jbpm-3.1-alpha2/lib/hibernate,因為是alpha版,可能有些小問題,否則build出現異常。
j) 執行 Ant ,創建 table schema 至 Oracle10g。
ant create.db -buildfile build.deploy.xml
4. 構建 jbpm.war 部署到Tomcat-5.0.30
a) 修改 jbpm-3.1-alpha2/src/ config.files/ hibernate.cfg.xml文件中數據庫連接配置部分,如下:
……
<!-- jdbc connection properties -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.0.20:1521:JBPM </property>
<property name="hibernate.connection.username">JBPM</property>
<property name="hibernate.connection.password">JBPM </property>
<!-- other hibernate properties -->
<property name="hibernate.show_sql">true</property>
……
b) 修改jbpm-3.1-alpha2/build.deploy.xml文件,target為build.webapp的內容,有一些相關的 jar 必需要一起打包形成部署的war文件,如下:
<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,converter.jar" excludes="*src*.jar"/>
<fileset dir="lib/jsf" includes="*.jar" />
<fileset dir="lib/dom4j" includes="*.jar" />
<fileset dir="lib/hibernate" includes="*.jar" />
<fileset dir="lib/oracle" includes="*.jar" />
<fileset dir="lib/commons" includes="commons-digester-*.jar, commons-beanutils-*.jar" />
<fileset dir="lib/jboss" includes="*.jar" excludes="jboss*.jar,*servlet*.jar,*hsql*.jar"/>
</copy>
<jar destfile="build/jbpm.war">
<fileset dir="build/jbpm.war.dir" />
</jar>
</target>
c) 執行 Ant Build Target ‘build.webapp’,生成 jbpm.war。
ant build.webapp -buildfile build.deploy.xml
d) 將jbpm.war 複製到Tomcat-5.0.30的webapp目錄下,Tomcat自動部署jbpm。
e) 打開瀏覽器,輸入http://localhost:8080/jbpm,出現登錄頁面。
f) 至此,安裝成功!
最近在某個運營商電子運維支撐項目中,需要使用工作流技術來幫助運營商實現運維工作電子化、流程化。工作流可以將好的管理思想淋漓盡致地展現出來,它無疑是企業資訊化建設過程中進行流程固化、流程優化和應用集成的重要手段和有效工具。在對市場上的工作流產品進行選型,同時也注意到幾個有特色的開源工作流,比如OsWorkflow、Shark、jBPM等。
jBPM作為功能強大的工作流引擎和業務流程管理平臺(BPM),它支援企業級應用(集群),具有靈活性、擴展性、企業應用集成(EAI)等良好特性。
現在,將jBPM3.1完整安裝過程寫出來與大家共用,一起來研究jBPM。
2. 必備軟體
a) Oracle10g
b) Tomcat-5.0.30
c) Ant-1.6.5
d) jBPM3.1-alpha2
3. 將數據庫替換成Oracle10g
a) 從sourceforge網站下載jbpm-3.1-alpha2.zip(http://switch.dl.sourceforge.net/sourceforge/jbpm/jbpm-3.1-alpha2.zip)。
b) 解壓縮jbpm-3.1-alpha2.zip到jbpm-3.1-alpha2目錄。
c) 在 jbpm-3.1-alpha2/lib下,建立目錄 oracle。
d) 複製Oracle10g的jdbc驅動ojdbc14.jar到jbpm-3.1-alpha2/lib/oracle目錄下。
e) 在Oracle10g數據庫伺服器上,使用dbca工具創建數據實例,名稱為JBPM,並且添加數據庫訪問用戶JBPM/JBPM。
f) 在 jbpm-3.1-alpha2/src/resources目錄下,建立目錄oracle,並複製 hsqldb 目錄下的2個文件: identity.db.xml和create.db.hibernate.properties到oracle目錄下。
g) 修改 jbpm-3.1-alpha2/src/resources/oracle/create.db.hibernate.properties文件, 如下 :
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
# for Oracle 8 compatibility use
#hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@192.168.0.20:1521:JBPM
hibernate.connection.username= JBPM
hibernate.connection.password= JBPM
hibernate.show_sql=true
hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=3
h) 修改 jbpm-3.1-alpha2/build.deploy.xml文件中 target 為 create.db 的內容 , 如下:
<target name="create.db" depends="declare.jbpm.tasks" description="creates a oracle database with the jbpm tables and loads the processes in there">
<jbpmschema actions="create" properties="${basedir}/src/resources/oracle/create.db.hibernate.properties"/>
<loadidentities file="${basedir}/src/resources/oracle/identity.db.xml" properties="${basedir}/src/oracle/hsqldb/create.db.hibernate.properties"/>
<ant antfile="build.xml" target="build.processes" inheritall="false" />
<deploypar properties="${basedir}/src/resources/oracle/create.db.hibernate.properties">
<fileset dir="build" includes="*.par" />
</deploypar>
</target>
i) 複製c3p0-0.8.5.2.jar到jbpm-3.1-alpha2/lib/hibernate,因為是alpha版,可能有些小問題,否則build出現異常。
j) 執行 Ant ,創建 table schema 至 Oracle10g。
ant create.db -buildfile build.deploy.xml
4. 構建 jbpm.war 部署到Tomcat-5.0.30
a) 修改 jbpm-3.1-alpha2/src/ config.files/ hibernate.cfg.xml文件中數據庫連接配置部分,如下:
……
<!-- jdbc connection properties -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.0.20:1521:JBPM </property>
<property name="hibernate.connection.username">JBPM</property>
<property name="hibernate.connection.password">JBPM </property>
<!-- other hibernate properties -->
<property name="hibernate.show_sql">true</property>
……
b) 修改jbpm-3.1-alpha2/build.deploy.xml文件,target為build.webapp的內容,有一些相關的 jar 必需要一起打包形成部署的war文件,如下:
<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,converter.jar" excludes="*src*.jar"/>
<fileset dir="lib/jsf" includes="*.jar" />
<fileset dir="lib/dom4j" includes="*.jar" />
<fileset dir="lib/hibernate" includes="*.jar" />
<fileset dir="lib/oracle" includes="*.jar" />
<fileset dir="lib/commons" includes="commons-digester-*.jar, commons-beanutils-*.jar" />
<fileset dir="lib/jboss" includes="*.jar" excludes="jboss*.jar,*servlet*.jar,*hsql*.jar"/>
</copy>
<jar destfile="build/jbpm.war">
<fileset dir="build/jbpm.war.dir" />
</jar>
</target>
c) 執行 Ant Build Target ‘build.webapp’,生成 jbpm.war。
ant build.webapp -buildfile build.deploy.xml
d) 將jbpm.war 複製到Tomcat-5.0.30的webapp目錄下,Tomcat自動部署jbpm。
e) 打開瀏覽器,輸入http://localhost:8080/jbpm,出現登錄頁面。
f) 至此,安裝成功!