软件版本:
jbpm-jpdl-suite-3.2.3
Tomcat6.0.18
SqlServer2000
1. 初始化数据库:
在SqlServer中新建数据库,如 jbpm1。
另存修改 jbpm-jpdl-suite-3.2.3\db\jbpm.jpdl.mssql.sql 脚本,可以将其中的 varchar(4000) 替换为 text ,或替换为 varchar(250) 。
然后执行其中的建表部分代码( create table JBPM_ACTION ... )。
执行下面代码添加用户和身份:
/* sql server 插入 identity 身份记录 */ INSERT INTO JBPM_ID_GROUP VALUES('G','sales','organisation',NULL) INSERT INTO JBPM_ID_GROUP VALUES('G','admin','security-role',NULL) INSERT INTO JBPM_ID_GROUP VALUES('G','hr','organisation',NULL) INSERT INTO JBPM_ID_GROUP VALUES('G','user','security-role',NULL) INSERT INTO JBPM_ID_GROUP VALUES('G','manager','security-role',NULL) INSERT INTO JBPM_ID_USER VALUES('U','user','user@sample.domain','user') INSERT INTO JBPM_ID_USER VALUES('U','manager','manager@sample.domain','manager') INSERT INTO JBPM_ID_USER VALUES('U','admin','admin@sample.domain','admin') INSERT INTO JBPM_ID_USER VALUES('U','shipper','shipper@sample.domain','shipper') INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,2,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,3,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,1,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,4,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,4,3) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,2,3) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,3,3) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,3,2) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,2,2) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,2,5) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,'boss',2,1) INSERT INTO JBPM_ID_MEMBERSHIP VALUES('M',NULL,NULL,1,1)
2. 生成发布包:
在 命令行窗口的jbpm-jpdl-suite-3.2.3\deploy 目录下,运行
ant customize.console.for.tomcat
将生成文件 customized\jbpm-console.war ,用 Winrar 打开,并接压缩到当前目录,将生产 jbpm-console 目录。修改其中的有关文件并添加相关包,以适应 Tomcat 和 SqlServer:
修改 jbpm-console\WEB-INF\classes\hibernate.cfg.xml
<hibernate-configuration> <session-factory> <!-- hibernate dialect --> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> <!-- JDBC connection properties (begin) === --> <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="hibernate.connection.url">jdbc:sqlserver://localhost;user=sa;password=8025256</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.default_catalog">jbpm1</property> <property name="hibernate.default_schema">dbo</property> <!-- ==== JDBC connection properties (end) --> <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> <!-- <property name="hbm2ddl.auto">create</property> --> <!-- DataSource properties (begin) --> <!-- <property name="hibernate.connection.datasource">java:comp/env/jdbc/JbpmDataSource</property> --> <!-- DataSource properties (end) -->
拷贝别的需要的 jar 包到jbpm-console\WEB-INF\lib目录下:
Sqlserver 2005 JDBC 包:sqljdbc.jar
jsf 包:jsf-api.jar、jsf-impl.jar
其他包:jta.jar、commons-collections.jar
3. 可以了吗?
将 jbpm-console 连同目录直接拷贝到 tomcat6 的 webapps,然后启动 tomcat6 ,浏览 jbpm-console 应用应该也能显示页面,只不过登录总是出错。
修改 tomcat6\conf\tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="user"/> <role rolename="admintm"/> <role rolename="tomcat"/> <role rolename="manager"/> <role rolename="sales"/> <role rolename="admin"/> <role rolename="participant"/> <user username="user" password="user" roles="user"/> <user username="shipper" password="shipper" roles="user"/> <user username="admintm" password="admintm" roles="admintm,manager"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="admin" password="admin" roles="user,admin"/> </tomcat-users>
还不行吗?那可能是我遗漏了什么?
参考:
jBPM on Tomcat http://www.jboss.org/community/wiki/JbpmOnTomcat
张玉明 : jBPM_jPDL学习笔记.pdf