JBPM3.3+JBoss5+MySQL5的安装配置说明

在开始安装之前,我们先准备一下需要安装的软件。

1.JDK6及以上版本
2.JBoss-5.0.0.GA-jdk6
3.JSF1.1.15及以上版本
4.Mysql5
5.JBPM-3.3.1.GA(http://www.jboss.org/jbossjbpm/jbpm_downloads/)本人选择的是3.3.1版本

一、安装部分

第一步,安装JDK,并设置环境变量JAVA_HOME为JDK安装目录。这里务必设置,因为JBOSS5启动时会去找这个环境变量,如果不存在,则会使用默认的JDK版本,比如1.4之类的,这样会导致JBOSS5启动失败。
第二步,解压jboss-5.0.0.GA-jdk6.zip到E:/studio/jboss5(根据个人需要)。
第三步,安装MySQL5,如果不会的可以google一下,此内容不再本文讨论范围之类。
第四步,安装JBPM3.3,运行jbpm-installer-3.3.1.GA.jar,安装路径选择的E:/studio/jbpm331(根据个人需要),数据库选择的时候选择mysql5,web服务器选择Jboss5,之后一路next。这个安装程序会自动安装一份jbpm,另外会自动发布一份到jboss中。

二、配置部分
第一步,启动mysql5,创建一个数据库jbpm,打开mysql5的控制台。使用命令(create database jbpm;)
第二步,导入jbpm所需要的表结构,sql文件的存放地址为“E:\studio\jbpm331\database\jbpm.jpdl.mysql.sql”,把这里面的sql语句导入数据库。在这里推荐一个管理mysql的工具<Toad for MySQL>,类似于oracle的pl/sql。
第三步,配置JBOSS5中的JBPM3.3项目,地址“E:\studio\jboss5\server\default\deploy\jbpm”,修改jbpm-mysql-ds.xml文件,设置好数据库连接的帐号密码等。至于有的人说需要修改hibernate的配置,其实对于这个版本没有需要,那边的配置文件写好了自动调用这里的数据源。但是这里需要注意的是,建议将这里的文件修改为一下的样子。
<?xml version=”1.0″ encoding=”UTF-8″?>
<datasources>
<local-tx-datasource>
<jndi-name>JbpmDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/jbpm</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>密码</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
否则有可能出现以下的错误:
09:17:33,115 INFO [DatasourceConnectionProvider] Using datasource: java:JbpmDS
09:17:33,115 WARN [JBossManagedConnectionPool] Throwable while trying to match ManagedConnection, destroying connection: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@6ca1a6[state=NORMAL mc=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@1ae8bac handles=0 lastUse=1234195414812 permit=false trackByTx=false mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@ed55ec context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@1a40fff xaResource=org.jboss.resource.connectionmanager.xa.JcaXAResourceWrapper@53d34c txSync=null]
java.lang.NoClassDefFoundError: org/jboss/resource/adapter/jdbc/ValidConnectionChecker

第四步,这个时候,如果启动jboss5,也许就会遇到以下问题:

ERROR [compiler] Missing Built-in Tag Libraries! Make sure they are included within the META-INF directory of Facelets’ Jar.

这个是JBOSS5和jsf-facelets-1.1.14的兼容问题,需要拷贝jsf-facelets-1.1.15或以上的版本,这个时候从之前下载的jsf包里面获取,我这里是从我的seam2.2.1中直接拿出来的,1.1.15版本.拷贝到“E:\studio\jboss5\server\default\deploy\jbpm\jsf-console.war\WEB-INF\lib”中,另外将之前的1.1.14版本删除掉,如果这里没有mysql的连接驱动也请拷贝一份放到这里。

第五步,这个时候我们就可以启动JBOSS5了,运行E:\studio\jboss5\bin\run.bat启动,之后可以访问http://127.0.0.1:8080/jbpm了,如果出现画面则代表配置成功了。但是这里不能登陆,我们还得继续。

第六步,配置安全域,修改文件E:\studio\jboss5\server\default\deploy\jbpm\jsf-console.war\WEB-INF\web.xml,

<security-constraint>
<web-resource-collection>
<web-resource-name>Secure Area</web-resource-name>
<url-pattern>/app/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
<role-name>admin</role-name><!– 增加的这一行 –>
</auth-constraint>
</security-constraint>

修改文件E:\studio\jboss5\server\default\conf\login-config.xml,在最后一行</policy>前增加一下内容:
<application-policy name = “jbpm-console”>
<authentication>
<login-module code=”org.jboss.security.auth.spi.DatabaseServerLoginModule” flag=”required”>
<module-option name=”dsJndiName”>java:/JbpmDS</module-option>
<module-option name=”principalsQuery”>
SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=?
</module-option>
<module-option name=”rolesQuery”>
SELECT g.NAME_ ,’Roles’
FROM JBPM_ID_USER u,
JBPM_ID_MEMBERSHIP m,
JBPM_ID_GROUP g
WHERE g.TYPE_=’security-role’
AND m.GROUP_ = g.ID_
AND m.USER_ = u.ID_
AND u.NAME_=?
</module-option>
</login-module>
</authentication>
</application-policy>

之后向mysql插入以下数据:
insert into JBPM_ID_USER (ID_, CLASS_, NAME_, EMAIL_, PASSWORD_) values (‘1‘, ‘U‘, ‘user‘, ‘sample.user@sample.domain‘, ‘user‘);
insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values (‘2‘, ‘U‘, ‘manager‘, ‘sample.manager@sample.domain‘, ‘manager‘);
insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values (‘3‘, ‘U‘, ‘shipper‘, ‘sample.shipper@sample.domain‘, ‘shipper‘);
insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values (‘4‘, ‘U‘, ‘admin‘, ‘sample.admin@sample.domain‘, ‘admin‘);
insert into JBPM_ID_GROUP VALUES(1,‘G‘,‘admin‘,‘security-role‘,NULL);
insert into JBPM_ID_GROUP VALUES(2,‘G‘,‘manager‘,‘security-role‘,NULL);
insert into JBPM_ID_GROUP VALUES(3,‘G‘,‘user‘,‘organisation‘,NULL);
insert into JBPM_ID_MEMBERSHIP VALUES(1,‘M‘,NULL,‘user‘,1,3);
insert into JBPM_ID_MEMBERSHIP VALUES(2,‘M‘,NULL,‘admin‘,2,1);
insert into JBPM_ID_MEMBERSHIP VALUES(3,‘M‘,NULL,‘manager‘,2,2);
insert into JBPM_ID_MEMBERSHIP VALUES(4,‘M‘,NULL,‘user‘,2,3);
insert into JBPM_ID_MEMBERSHIP VALUES(5,‘M‘,NULL,‘user‘,3,3);
insert into JBPM_ID_MEMBERSHIP VALUES(6,‘M‘,NULL,‘admin‘,4,1);
insert into JBPM_ID_MEMBERSHIP VALUES(7,‘M‘,NULL,‘user‘,4,3);

完成之后,从新启动jboss5,访问http://127.0.0.1:8080/jbpm,使用admin/admin登陆.

至此,我们的安装配置就完成了。

另外在此提示一下,这个版本的jbpm3.3项目有点bug,点击一些页面的时候会出现错误页面,大致如下错误:

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean

本人目前只发现了2个页面,进行了修复,需要修改的文件在E:\studio\jboss5\server\default\deploy\jbpm\jsf-console.war\app中。
修改t_processinstances.xhtml文件第68行开始:
<td style=”white-space:nowrap;”>
<h:selectBooleanCheckbox id=”running_i” value=”#{filter_running== ‘true’}”/>
<gs:label forId=”running_i” styleClass=”statusRunning”>R</gs:label>
<h:selectBooleanCheckbox id=”suspended_i” value=”#{filter_suspended == ‘true’}”/>
<gs:label forId=”suspended_i” styleClass=”statusSuspended”>S</gs:label>
<h:selectBooleanCheckbox id=”ended_i” value=”#{filter_ended == ‘true’}”/>
<gs:label forId=”ended_i” styleClass=”statusEnded”>E</gs:label>
</td>
修改t_tasks.xhtml文件第74行开始:
<td style=”width:120px;white-space:nowrap”>
<h:selectBooleanCheckbox id=”task_notstarted_i” value=”#{task_filter_notstarted == ‘true’}”/>
<gs:label forId=”task_notstarted_i” styleClass=”statusNotstarted”>N</gs:label>
<h:selectBooleanCheckbox id=”task_running_i” value=”#{task_filter_running == ‘true’}”/>
<gs:label forId=”task_running_i” styleClass=”statusRunning”>R</gs:label>
<h:selectBooleanCheckbox id=”task_suspended_i” value=”#{task_filter_suspended == ‘true’}”/>
<gs:label forId=”task_suspended_i” styleClass=”statusSuspended”>S</gs:label>
<h:selectBooleanCheckbox id=”task_ended_i” value=”#{task_filter_ended == ‘true’}”/>
<gs:label forId=”task_ended_i” styleClass=”statusEnded”>E</gs:label>
</td>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值