軟件版本:
jboss:4.0.3(我採用了jbpm-starters-kit-3.1.4.zip中帶的)
ant:1.7
postgersql:8.1.7
jbpm:3.1.4
Redhat 2.6
Eclipse 3.2.1
那些軟件我是到各自的官方網站下的,然後按照步驟準確地安裝好,這就不說了。
下了jbpm:3.1.4的四個包:jbpm-starters-kit-3.1.4.zip(JBOSS服務)、jbpm-db-3.1.4.zip(數據庫的腳本)、jbpm-3.1.4.zip(源碼,裏面包含了一個demo);另外還有個畫流程圖的ECLIPSE插件jbpm-gpd-feature-3.0.12.zip。
接下來想講解怎麼把它部署到Redhat上(其實跟部署到WINDOWS上一摸一樣,因爲JBOSS不分OS)
1、 在Redhat上裝好JBOSS,我直接把jbpm-starters-kit-3.1.4下的jbpm-server上傳到Linux,這樣等於安裝了JBOSS。對於初學者稍微注意一下:如果在服務器上安裝了其他WEB服務器(如Tomcat)或應用服務器,可能存在端口占用問題,啓動JBOSS的時候會報端口被佔用,在/server/default/deploy/jbossweb-tomcat55.sar/server.xml修改WEB訪問端口,在/server/default/conf/jboss-service.xml修改JBOSS的服務端口。
2、 安裝postgresql 8.1.7,並創建數據庫名稱是dbtest,然後到/jbpm-db-3.1.4/build/postgresql/scripts下取postgresql.create.sql,並運行它。這樣就創建了jBPM所需的表。
3、 在jboss下部署數據源。如果JBOSS服務器的目錄是/jbpm-server',創建數據源的配置文件,隨便取個名字:jbpm-ds.xml,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>JbpmDS</jndi-name>
<connection-url>jdbc:postgresql://hostIP:5432/dbtest</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>user</user-name>
<password>password</password>
<metadata>
<type-mapping>PostgreSQL 8.1</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
把這個文件上傳到/server/jbpm/deploy下。
4、 把postgers的驅動程序postgresql-8.1-408.jdbc3.jar上傳到jbpm-server/server/jbpm/lib下。
5、 作jbpm.sar和jbpm.war包。
(1)在源碼文件夾jbpm-3.1.4/src/resources/下創建postgresql文件夾,複製 hsqldb 目錄下的2個文件: identity.db.xml和create.db.hibernate.properties到postgresql目錄下,create.db.hibernate.properties的內容是:
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.driver_class=org.postgresql.Driver
hibernate.connection.url=jdbc:postgresql://hostIP:5432/dbtest
hibernate.connection.username=user
hibernate.connection.password=password
hibernate.show_sql=true
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
(2)把/jbpm-3.1.4/src/config.files下 hibernate.cfg.xml的數據庫鏈接內容改成:
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://hostIP:5432/dbtest </property>
<property name="hibernate.connection.username"> user</property>
<property name="hibernate.connection.password"> password</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
(3)修改jbpm-3.1.4 /build.deploy.xml文件中 target 爲 create.db 的內容,把hsqldb改成postgresql
(4)在命令行下定位到jbpm-3.1.4目錄下執行ant create.db -buildfile build.deploy.xml生成jbpm.sar壓縮包
ant build.webapp -buildfile build.deploy.xml生成jbpm.war,其他的都是臨時文件。
6、 爲jbpm指定數據源。解開jbpm.sar,查看/META-INF下的jboss-service.xml,內容應該如下:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jbpm.db.jmx.JbpmService"
name="jboss.jbpm:name=DefaultJbpm,service=JbpmService"
description="Default jBPM Service">
<attribute name="JndiName">java:/jbpm/JbpmConfiguration</attribute>
<depends>jboss.jca:service=DataSourceBinding,name=JbpmDS</depends>
</mbean>
</server>
另外,jbpm.sar.cfg.jar包含了hibernate的數據庫配置文件hibernate.cfg.xml
7、 把jbpm.sar和jbpm.war上傳到JBOSS服務器的/server/jbpm/deploy下。