软件版本:
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
。
解压这些压缩包,双击
jbpm-starters-kit-3.1.4/jbpm-server
下的
start.bat
,
JBOSS
启动后用
http://127.0.0.1:8080/jbpm
浏览一下就看到了那个
demo
。这是小试一下。
接下来想讲解怎么把它部署到
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
下。
8
、
启动
JBOSS
,就算环境搭建好了,这个时候可以访问
jbpm
的页面了,只是没流程数据。如果需要部署一个流程,利用画图插件画好流程模型,然后调用引擎提供的流程模型解析接口就可以了,这个例子请参照
http://www.blogjava.net/chengang/category/12967.html
,里面描述得非常清楚。