软件版本:
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下。