- 浏览: 96589 次
- 来自: ...
最新评论
-
gongcheneric:
如果我是要在一个局域网内的某台电脑上修改其他电脑(已知电脑的I ...
java 修改系统时间 -
lijunlong:
...
java 修改系统时间 -
jljf_hh:
喔,了解一下,正好没时间研究这东西呢.哈哈
JBPM阶段性工作总结 -
yuyanshan:
你好,我也是这们做的不,不过我还不明白怎么处理任务,我是这样想 ...
会签实现
JBoss JBPM 实践系列(一)--- 安装配置(Tomcat 6.0 + MySQL 5.1)
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,遵循Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
jBPM有两大特色,使他成为市场的一大两点。其中最大的特色就是它的业务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl把一个业务逻辑流程看作是一个UML状态图,如果你不熟悉UML状态图,那初学计算机语言的流程图应该熟悉吧,表达的方式和意思大同小异。jPdl详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等;其另一大特色就是集成Hibernate,确切的说是绑定,使用Hibernate来管理数据库,这样jBPM只专注于他的业务流程控制。
从上面可以看出,jBPM是一个业务流程管理引擎,是一个工作流引擎。除此之外,它同时实现了对jPDL和对BPEL的支持。它整合了Hibernate技术处理数据库,创建了一系列的数据库表,持久化工作流引擎所需的状态。因此,jBPM支持所有Hibernate支持的数据库,能够把Java对象持久化到数据库中,把Hibernate支持的Java类的对象保存到数据库中!
你完全可以像用 Java 的类库一样使用JBoss jBPM,而且通过配置JBoss jBPM也可以被部署在其它J2EE应用服务器上和任何数据库上。
在本文中,我们首先来创建我们的JBoss jBPM运行开发环境。在开始之前,请准备一下软件产品:
·JDK 1.5 或者更高版本, 这里使用JDK 6u10b
·Apache Tomcat 5.5.x或更高版本,这里使用Tomcat 6.0.16
·MySQL 5.1 ,也可以选择其它Hiberante 支持的数据库,没有太大差别,这里使用MySQL 5.1
·Apache Ant 1.7.0
·JBPM-3.2.3
·Eclipse Europa(Eclipse V3.3) for JavaEE Developers或更高, 这里使用Eclipse V3.4
说明:JBoss jBPM的发布包中已经配置好了一套服务环境,是基于JBoss的。因为我们习惯了Tomcat 的小巧灵活,而且我们也不希望jBPM依赖JBoss。
1. 下载安装JDK,Tomcat, Ant, MySQL, 并设置相应的环境变量
此步骤不再熬述,具体请查阅官方文档
Tomcat:http://tomcat.apache.org/
Eclipse:http://www.eclipse.org/
2. 下载JBoss jBPM
JBoss jBPM 官方(http://www.jboss.org/jbossjbpm/)当前发布的版本为 3.2.3, 只需要下载jPDL Suite,下载后得到jbpm-jpdl-suite-3.2.3.zip,这个套件包含了所有的内容和资源,包括eclipse插件,示例,和流程管理控制应用。
解压jbpm-jpdl-suite-3.2.3.zip,这里解压后得到D:\jbpm-jpdl-3.2.3,其主要目录结构如下:
D:\jbpm-jpdl-3.2.3
|--- db 这里都是些sql定义和数据文件,如果改用其它数据库,可以使用这些资源来创建,服务还是很周到的。顺便
| 罗嗦一句,jBPM 默认使用的是内存数据库 hsqldb ,这个数据库还没研究过(嘿嘿---)
|
|--- deploy 用来部署你的应用的包和资源
|
|--- designer 这里是Eclipse插件,这样你就可以在图形界面来定义你的业务流程,骨灰级人物没他也能过日子
|
|--- doc 这里是jBPM相关组件的API 文档
|
|--- examples 这里是些学习的例子
|
|--- lib jBPM 的类库
|
|--- server 这里有一个JBoss 服务器,并且包含了本JBoss jBPM引擎,还部署了websale例子
|
|--- src 这里是JBoss jBPM的源代码
3. 配置数据库
jBPM需要把初始化数据和工作流定义存储到数据库中,它定义了一套数据结构来存储这些数据,这也是该容器本身的特点。
在mysql 中创建一个数据库 jbpm ,(create database jbpm;),并创建用户jbossjbpm(密码:jbossjbpm)
说明:如果你嫌麻烦可以使用root账号和其密码,不过下面的设置请做相应的更改
在D:\jbpm-jpdl-3.2.3\db 找到jbpm.jpdl.mysql.sql, 该文件必须修改一下,以符合MySQL的语法结构。具体就是在每条语句的末尾增加一个分号";"你可以借助 UltrEdit, EditPlus等工具来做这些事情(注意替换时要注意匹配大小写,有写表的字段中包含CREATE字符),如果是第一次创建这些数据库表,要删除create语句上面的alter和drop(这些表还都不存在)。
4. 准备jBPM包
这是个jbpm-jpdl流程管理控制台,就像Tomcat有个单独的Administrator应用用来管理配置和部署一样的东东。有了他你可以在图形界面来操作控制你的应用。
打开命令行控制台,切换到D:\jbpm-jpdl-3.2.3\deploy 目录,执行以下命令:
ant customize.console.for.tomcat
注意:请确保你的ant安装配置妥当,可以在命令行输入:ant -version 来检测ant 是否正确安装。命令执行后能看到ant的版本信息即OK
ant customize.console.for.tomcat 执行成功后,会在D:\jbpm-jpdl-3.2.3\deploy 目录下生成customized和target目录,其中customized目录下的jbpm-console.war即是我们想要的war包。
我们需要修改jbpm-console.war/WEB-INF/classes/hibernate.cfg.xml 文件,以适应我们的资源属性的需要。修改后的结果如下:
- <hibernate-configuration>
- <session-factory>
- <!-- hibernate dialect -->
- <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
- <!-- JDBC connection properties (begin) -->
- <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
- <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
- <property name="hibernate.connection.username">jbossjbpm</property>
- <property name="hibernate.connection.password">jbossjbpm</property>
- <!-- JDBC connection properties (end) -->
- <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
- <!-- DataSource properties (begin) ==
- <property name="hibernate.connection.datasource">java:/JbpmDS</property>
- == DataSource properties (end) -->
- <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
- ...
<hibernate-configuration> <session-factory> <!-- hibernate dialect --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- JDBC connection properties (begin) --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property> <property name="hibernate.connection.username">jbossjbpm</property> <property name="hibernate.connection.password">jbossjbpm</property> <!-- JDBC connection properties (end) --> <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> <!-- DataSource properties (begin) == <property name="hibernate.connection.datasource">java:/JbpmDS</property> == DataSource properties (end) --> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> ...
这里就是启用了 更换了默认的数据属性,JDBC connection properties ,还有自己定义的数据名字和帐号,另外需要注意的是用
- <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
代替JTATransactionFactory和CMTTransactionFactory,想用JTATransactionFactory或CMTTransactionFactory配置也可以,不过还没有研究过,有知道的朋友可以一起学习一下。
拷贝jboss-j2ee.jar包至jbpm-console.war/WEB-INF/lib 。发布包下(D:\jbpm-jpdl-3.2.3)很多地方都有这个包你可以找一下,比如 D:\jbpm-jpdl-3.2.3\server\client。
这里主要是用到了Java Transaction Architecture, 所以你可以用J2EE中的jta.jar包还替换jboss-j2ee.jar。jta相关信息请参考:http://java.sun.com/javaee/technologies/jta/index.jsp
拷贝commons-collections.jar 包至jbpm-console.war/WEB-INF/lib 。发布包下(D:\jbpm-jpdl-3.2.3)好几处都有这个包,比如 D:\jbpm-jpdl-3.2.3\server\server\jbpm\lib 。这个包是Apache Commons包,到处都找的的到。
拷贝jsf-api.jar和jsf-impl.jar包至jbpm-console.war/WEB-INF/lib ,你可以在D:\jbpm-jpdl-3.2.3\server\server\jbpm\deploy\jboss-web.deployer\jsf-libs种找到这两个包。
说明:因为jbpm-console是一个jsf应用,没这两个包,你访问时会报404或505错误。
拷贝MySQL JDBC驱动程序包至%CATALINA_HOME%/lib (Tomcat 6)或%CATALINA_HOME%/common/lib(Tomcat 5.5)
拷贝修改后的jbpm-console至%CATALINA_HOME%/webapps
这样jBPM基本上配置完成,但是我们还不能访问他,还需要配置安全访问控制和初始的用户数据
5. 配置Tomcat 安全域
方法一:在%CATALINA_HOME%/conf/Catalina/localhost 创建一个jbpm-console.xml 文件,内容如下:
- <Context>
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/jbpm"
- connectionName="jbossjbpm"
- connectionPassword="jbossjbpm"
- userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"
- userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_"
- userCredCol="DISTINCT u.PASSWORD_"
- userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"
- roleNameCol="g.NAME_" />
- </Context>
<Context> <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/jbpm" connectionName="jbossjbpm" connectionPassword="jbossjbpm" userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_" userCredCol="DISTINCT u.PASSWORD_" userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" roleNameCol="g.NAME_" /> </Context>
方法二:修改 %CATALINA_HOME%/conf/tomcat-users.xml文件来设置安全域。为了不和tomcat已有的用户冲突,这里把 tomcat以前的登陆帐号username="admin" 修改为username="tadmin",修改后的文件如下:
- <?xml version='1.0' encoding='utf-8'?>
- <tomcat-users>
- <role rolename="user"/>
- <role rolename="administrator"/>
- <role rolename="manager"/>
- <role rolename="sales"/>
- <role rolename="hr"/>
- <role rolename="admin"/>
- <role rolename="participant"/>
- <user username="user" password="user" roles="user,sales"/>
- <user username="shipper" password="shipper" roles="user,hr"/>
- <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>
- <user username="tadmin" password="" roles="admin,manager"/>
- <user username="admin" password="admin" roles="admin,user,hr"/>
- </tomcat-users>
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="user"/> <role rolename="administrator"/> <role rolename="manager"/> <role rolename="sales"/> <role rolename="hr"/> <role rolename="admin"/> <role rolename="participant"/> <user username="user" password="user" roles="user,sales"/> <user username="shipper" password="shipper" roles="user,hr"/> <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/> <user username="tadmin" password="" roles="admin,manager"/> <user username="admin" password="admin" roles="admin,user,hr"/> </tomcat-users>
6. 初始化数据
在MySQL jbpm数据库中插入以下数据
- INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);
- INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);
- INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);
- INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);
- INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);
- INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');
- INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');
- INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');
- INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);
- INSERT INTO JBPM_ID_MEMBERSHIP VALUES
发表评论
-
节点描述
2008-08-07 21:59 1179对jBPM来讲,工作流由一 ... -
sample
2008-08-07 21:12 901xml配置 <start-state ... -
tasknode
2008-08-07 21:07 870同fork等一样是一种节点类型。任务节点是jbpm中一个非常重 ... -
controller
2008-07-31 20:44 921controller(控制器) \28在任务执行时,可能需要 ... -
exception-handler
2008-07-31 20:43 1846exception-handler 异常处理 jbpm异常 ... -
spring和jbpm事务一致性
2008-07-31 20:24 2832关于jbpm和spring结合的事务问题: 当JBPM使用sp ... -
知识点
2008-07-31 10:25 913Node Type ... -
ssh-jbpm发布遇到的问题
2008-07-30 10:04 15411.自己输入http://localhost:8080/ssh ... -
发布jbpm示例shipping遇到的问题
2008-07-28 18:09 10531 jstl和jsp2.0版本问题 <%@taglib ... -
jbpm解析流程定义
2008-07-27 19:25 1014jbpm解析流程定义有三种方式:1)par包static Pr ... -
Jbpm学习知识点
2008-07-26 21:32 1109如何运行Jbpm的示例程序?如何部署Jbpm?如何安装Jbp ... -
会签实现
2008-07-26 21:28 1439转载自http://tomkoo.iteye.com/blog ... -
业务流程设计
2008-07-26 09:01 1710转载自http://linliangyi2007.iteye. ... -
jBPM相关概念
2008-07-26 08:25 848转载自http://fndcz.iteye.com/blog/ ... -
jbpm资源
2008-07-26 07:59 832ant和发布 http://fndcz.iteye.com/ ... -
jbpm任务分配分析
2008-07-26 07:53 2201jbpm任务分配分析 任务 ... -
JBPM源码浅析
2008-07-26 07:40 1127转载自 http://zwchen.iteye.com/blo ... -
JBPM阶段性工作总结
2008-07-26 07:37 1540转载自http://zwchen.iteye.co ... -
eclipse的jbpm插件配置
2008-07-25 17:36 4733eclipse版本3.2.2 1. jbpm插件从jbpm-s ...
相关推荐
jsp+tomcat+mysql配置全过程 和mysql安装及使用,避免在配置jsp开发环境的过程碰到的一些问题。
### Tomcat+MySQL配置知识点详解 #### 一、J2SE环境配置 ##### 1.1 安装J2SE v1.5及以上版本 **背景介绍:** J2SE (Java 2 Platform, Standard Edition) 是Java的核心部分,包含了开发Java应用程序所需的类库和...
### NetBeans、Tomcat与MySQL配置详解 #### Tomcat安装及配置 1. **下载Tomcat**:访问[Tomcat官方网站](http://tomcat.apache.org/)进行下载,新手推荐使用Windows Installer版本,便于安装。 2. **安装路径**:...
### MyEclipse + Tomcat + MySQL 配置详解 #### 一、MyEclipse与Tomcat集成配置 **1.1 环境准备** - **MyEclipse**:一个功能强大的集成开发环境(IDE),主要用于Java EE应用程序的开发。 - **Tomcat**:开源的...
### JDK + JSP + Tomcat + MySQL 配置详解 #### 一、软件下载与准备工作 在搭建基于JDK、JSP、Tomcat以及MySQL的开发环境之前,我们需要下载并准备好必要的软件包。 1. **MySQL**: 下载适用于Windows操作系统的...
### Tomcat+MySQL配置详解 #### 一、前言 在搭建Web应用开发环境时,经常需要配置Tomcat与MySQL数据库的连接。这对于初学者来说可能会遇到不少问题。本文将详细介绍如何从零开始配置Tomcat与MySQL,并确保两者能够...
### Jdk+jsp+tomcat+mysql配置过程详解 #### 一、概述 本文将详细介绍如何在Windows操作系统上配置JDK(Java Development Kit)、JSP(Java Server Pages)、Tomcat服务器以及MySQL数据库的过程。通过本教程,您将...
jsj_tomcat+mysql配置.pdf
《JSP+Tomcat+MySQL配置详解》 在Web开发领域,JSP(JavaServer Pages)、Tomcat(开源Java Servlet容器)与MySQL(流行的开源关系型数据库)是常见的技术组合,广泛应用于动态网站的构建。本资料集合针对这三者的...
### jsp+tomcat+mysql配置全过程详解 #### 一、引言 本文将详细介绍如何配置JSP+Tomcat+MySQL环境,适用于初学者。通过本教程的学习,您将能够搭建一个基本的Web开发环境,并了解如何配置数据库连接,以便进行更...
jsj_tomcat+mysql配置[整理].pdf
详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...
### Tomcat+JSP+MySQL 经典配置实例详解 #### 一、环境搭建与配置 在本章节中,我们将详细介绍如何配置一个基于Tomcat、JSP和MySQL的经典开发环境。这种组合是Java Web开发中非常常见的配置之一,能够帮助开发者...