在开始安装之前,我们先准备一下需要安装的软件。
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>
分享到:
相关推荐
jBPM(Java Business Process Management)是Java企业级工作流管理解决方案,由JBoss公司开发,现在是Red Hat公司的开源项目。它提供了一套全面的工具和服务,用于设计、执行和监控业务流程。jBPM支持BPMN2.0标准,...
### jBPM 开发环境配置与Struts 1.x集成应用详解 #### 一、环境配置 本章节主要介绍如何配置jBPM开发环境。所使用的工具包括Eclipse 3、MyEclipse 6、MySQL 5以及Tomcat 6等。 **1. 下载jBPM开发包** 首先,从...
总之,部署jBPM-JPDL v3.2到Tomcat + MySQL环境涉及多个步骤,包括系统环境的配置、相关软件的安装和设置,以及jBPM示例的运行。完成这些步骤后,你将拥有一个基础的jBPM工作流管理系统,能够进行流程的管理和监控。
jbpm4.4是JBoss公司提供的一个开源工作流管理系统,它允许开发者在Java应用程序中轻松地实现业务流程管理(BPM)。SSH2则是Struts2、Spring和Hibernate三个开源框架的组合,常用于构建企业级的Java Web应用。将jbpm...
2. **JBPM**:即JBoss Business Process Management,一个开源的工作流和业务流程管理(BPM)框架。JBPM提供了一套完整的解决方案来帮助开发者定义、执行和管理业务流程。 3. **Spring Boot**:简化了基于Spring的应用...
中文,html5+API中文帮助文档,HTML语言教程,JavaEE6.0_API_帮助文档,JavaEE7-api,JBoss jBPM 3.0,jBPM4.3用户指南,JDK+8.0+EN+API,JDOM_API_帮助文档,JFreeChart+API+文档,jQuery1.3中文参考,JScript 中文...
1. 熟悉Tomcat、JBoss等Web服务器的安装和配置 2. 熟悉JAVA相关开发工具(Eclipse、Jbuilder、SVN)及项目管理工具Maven的使用 软件工程 1. 熟悉软件工程,能迅速接受新技术,快速学习和应用 2. 熟悉中型项目开发...
以下是对其中关键知识点的详细说明: 1. **Java基础与开发经验**:简历中提到开发者具有扎实的计算机理论基础,尤其精通Java语言,并且在JAVA EE平台上拥有丰富的项目开发经验。这表明开发者在Java编程方面有深厚的...
5. **分层架构与事务控制** - 分层架构可能包括表现层、业务逻辑层、数据访问层等,事务一般在业务逻辑层控制,采用ACID原则确保数据一致性。 6. **乐观锁** - 乐观锁用于处理并发场景,假设很少发生冲突,只有在...
- **服务器**:熟悉Tomcat、Weblogic、Jboss的部署配置。 - **Web技术**:掌握JSP、Servlet、JSTL、EL,了解OGNL,熟悉Ajax和JavaScript库。 4. **教育背景**: - **软件工程硕士**:强调扎实的计算机理论基础,...
学习过Activiti的朋友都知道,Activiti的创始人也就是JBPM(也是一个优秀的BPM引擎)的创始人,从Jboss离职后开发了一个新的BPM引擎:Activiti。所以,Activiti有很多地方都有JBPM的影子。所以,据说学习过JBPM的...
1. **工作流引擎**:例如Activiti或JBoss jBPM,用于定义和执行工作流程,自动化任务分配和审批过程。 2. **任务管理**:用户可以创建、分配、跟踪和完成任务,系统自动记录任务状态。 3. **提醒与通知**:通过...
- Oracle 10g,SQL Server,MySQL:常用的关系型数据库。 - HSQLDB,Derby,Berkeley DB:轻量级或嵌入式数据库。 8. **开发工具**: - Eclipse,NetBeans,IntelliJ IDEA:主流的Java开发IDE。 9. **Web服务器...