`
coconut_zhang
  • 浏览: 543743 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

JBoss jBPM安装配置(Tomcat 6.0+MySQL 5.1)

    博客分类:
  • java
阅读更多

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。

下载安装JDK,Tomcat, Ant, MySQL, 并设置相应的环境变量

此步骤不再熬述,具体请查阅官方文档

Jdk:http://java.sun.com/

Ant:http://ant.apache.org/

Tomcat:http://tomcat.apache.org/

Eclipse:http://www.eclipse.org/

下载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的源代码

配置数据库

jBPM需要把初始化数据和工作流定义存储到数据库中,它定义了一套数据结构来存储这些数据,这也是该容器本身的特点。

在mysql 中创建一个数据库 jbpm ,(create database jbpm;),并创建用户jbossjbpm(密码:jbossjbpm)

说明:如果你嫌麻烦可以使用root账号和其密码,不过下面的设置请做相应的更改

在D:jbpm-jpdl-3.2.3db 找到jbpm.jpdl.mysql.sql, 该文件必须修改一下,以符合MySQL的语法结构。具体就是在每条语句的末尾增加一个分号";"你可以借助 UltrEdit, EditPlus等工具来做这些事情(注意替换时要注意匹配大小写,有写表的字段中包含CREATE字符),如果是第一次创建这些数据库表,要删除create语句上面的alter和drop(这些表还都不存在)。

准备jBPM包

这是个jbpm-jpdl流程管理控制台,就像Tomcat有个单独的Administrator应用用来管理配置和部署一样的东东。有了他你可以在图形界面来操作控制你的应用。

打开命令行控制台,切换到D:jbpm-jpdl-3.2.3deploy 目录,执行以下命令:

ant customize.console.for.tomcat

注意:请确保你的ant安装配置妥当,可以在命令行输入:ant -version 来检测ant 是否正确安装。命令执行后能看到ant的版本信息即OK

ant customize.console.for.tomcat 执行成功后,会在D:jbpm-jpdl-3.2.3deploy 目录下生成customized和target目录,其中customized目录下的jbpm-console.war即是我们想要的war包。

我们需要修改jbpm-console.war/WEB-INF/classes/hibernate.cfg.xml 文件,以适应我们的资源属性的需要。修改后的结果如下:

Xml代码

  1. hibernate-configuration>   
  2.  session-factory>   
  3.    
  4.  ﹤!-- hibernate dialect -->   
  5.  property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect﹤/property>   
  6.    
  7.  ﹤!-- JDBC connection properties (begin) -->   
  8.  property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver﹤/property>   
  9.  property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm﹤/property>   
  10.  property name="hibernate.connection.username">jbossjbpm﹤/property>   
  11.  property name="hibernate.connection.password">jbossjbpm﹤/property>   
  12.  ﹤!-- JDBC connection properties (end) -->   
  13.    
  14.  property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider﹤/property>   
  15.    
  16.  ﹤!-- DataSource properties (begin) ==   
  17.  property name="hibernate.connection.datasource">java:/JbpmDS﹤/property>   
  18.  == DataSource properties (end) -->   
  19.  property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory﹤/property>   
  20. ...  

这里就是启用了 更换了默认的数据属性,JDBC connection properties ,还有自己定义的数据名字和帐号,另外需要注意的是用

Xml代码

  1. 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.3serverclient。

这里主要是用到了Java Transaction Architecture, 所以你可以用J2EE中的jta.jar包还替换jboss-j2ee.jar。

拷贝commons-collections.jar 包至jbpm-console.war/WEB-INF/lib 。发布包下(D:jbpm-jpdl-3.2.3)好几处都有这个包,比如 D:jbpm-jpdl-3.2.3serverserverjbpmlib 。这个包是Apache Commons包,到处都找的的到。

拷贝jsf-api.jar和jsf-impl.jar包至jbpm-console.war/WEB-INF/lib ,你可以在D:jbpm-jpdl-3.2.3serverserverjbpmdeployjboss-web.deployerjsf-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基本上配置完成,但是我们还不能访问他,还需要配置安全访问控制和初始的用户数据

配置Tomcat 安全域

方法一:在%CATALINA_HOME%/conf/Catalina/localhost 创建一个jbpm-console.xml 文件,内容如下:

Xml代码

  1. Context>   
  2. Realm className="org.apache.catalina.realm.JDBCRealm"   
  3.  driverName="com.mysql.jdbc.Driver"   
  4.  connectionURL="jdbc:mysql://localhost:3306/jbpm"   
  5.  connectionName="jbossjbpm"   
  6.  connectionPassword="jbossjbpm"   
  7.  userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"   
  8.  userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_"   
  9.  userCredCol="DISTINCT u.PASSWORD_"   
  10.  userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"   
  11.  roleNameCol="g.NAME_" />   
  12. ﹤/Context>  

方法二:修改 %CATALINA_HOME%/conf/tomcat-users.xml文件来设置安全域。为了不和tomcat已有的用户冲突,这里把 tomcat以前的登陆帐号username="admin" 修改为username="tadmin",修改后的文件如下:

Xml代码

  1. ﹤?xml version='1.0' encoding='utf-8'?>   
  2.    
  3. tomcat-users>   
  4.    
  5.  role rolename="user"/>   
  6.    
  7.  role rolename="administrator"/>   
  8.    
  9.  role rolename="manager"/>   
  10.    
  11.  role rolename="sales"/>   
  12.    
  13.  role rolename="hr"/>   
  14.    
  15.  role rolename="admin"/>   
  16.    
  17.  role rolename="participant"/>   
  18.    
  19.  user username="user" password="user" roles="user,sales"/>   
  20.    
  21.  user username="shipper" password="shipper" roles="user,hr"/>   
  22.    
  23.  user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>   
  24.    
  25.  user username="tadmin" password="" roles="admin,manager"/>   
  26.  user username="admin" password="admin" roles="admin,user,hr"/>   
  27. ﹤/tomcat-users> 

 

初始化数据

在MySQL jbpm数据库中插入以下数据

Sql代码

  1. INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);   
  2.    
  3. INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);   
  4.    
  5. INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);   
  6.    
  7. INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);   
  8.    
  9. INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);   
  10.    
  11. INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');   
  12.    
  13. INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');   
  14.    
  15. INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');   
  16.    
  17. INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');   
  18.    
  19. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);   
  20.    
  21. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);   
  22.    
  23. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);   
  24.    
  25. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);   
  26.    
  27. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);   
  28.    
  29. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);   
  30.    
  31. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);   
  32.    
  33. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);   
  34.    
  35. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);   
  36.    
  37. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);   
  38.    
  39. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);   
  40.    
  41. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);  

启动Tomcat 服务,查看控制台的日志,排除错误,数据库错误和支持库不完整都可能导致错误。

在浏览器中输入:http://localhost:8080/jbpm 能正常访问说明部署成功,你可以用页面上列出的用户和账号登陆进去体验一下。

 

 

 

分享到:
评论

相关推荐

    linux 下 配置JBoss6.0+JDK7.0

    在Linux环境下配置JBoss6.0与JDK7.0是一项关键的任务,因为这两个组件是许多企业级Java应用的基础。JBoss是一个流行的开源应用服务器,它支持Java EE规范,而JDK则是运行Java应用程序和应用服务器所必需的开发工具包...

    jbpm 5.0 jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版

    jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版

    配置TOMCAT+ECLIPSE+MYSQL的JSP环境

    配置TOMCAT+ECLIPSE+MYSQL的JSP环境是一个相对复杂的过程,涉及到多个软件的安装、配置以及它们之间的协同工作。通过以上步骤,开发者可以搭建一个完整的Java Web开发平台,为后续的项目开发打下坚实的基础。

    jboss数据库配置+oracle+mysql+sqlserver

    本文档将详细介绍如何在 JBoss AS 4.2.3.GA 版本中配置 MySQL、Oracle 和 SQL Server 数据库,并提供具体的步骤与注意事项。 #### 二、环境准备 - **JBoss AS 版本**: 4.2.3.GA - **Eclipse 版本**: Eclipse JEE ...

    Tomcat6.0

    "tomcat-6.0.10.exe"是Tomcat6.0的安装程序,其中".exe"是Windows操作系统中的可执行文件扩展名,表示这是一个用于在Windows环境下安装Tomcat6.0的程序。版本号"6.0.10"表示这是6.0系列中的第10个修订版。 **知识点...

    jbpm开发(eclipse3+myeclipse6+mysql5+tomcat6 )

    ### jBPM 开发环境配置与Struts 1.x集成应用详解 #### 一、环境配置 本章节主要介绍如何配置jBPM开发环境。所使用的工具包括Eclipse 3、MyEclipse 6、MySQL 5以及Tomcat 6等。 **1. 下载jBPM开发包** 首先,从...

    JBoss jBPM

    JBoss jBPM 是一个复杂的可扩展的工作流管理系统. JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性...

    apache-tomcat6.0

    安装Apache Tomcat 6.0通常包括解压下载的`apache-tomcat-6.0.33`压缩包,设置环境变量如`CATALINA_HOME`,以及配置`conf/server.xml`文件以定义端口、虚拟主机和应用上下文路径。 **部署Web应用** Web应用程序通常...

    tomcat 6.0

    与像JBoss、WebLogic、WebSphere这样的全功能应用服务器相比,Tomcat更轻量级,专注于Servlet和JSP的部署,对于小型或中型应用来说,它的配置和管理相对简单。然而,对于需要完整Java EE支持的大型企业应用,可能...

    JBoss7配置Mysql5.1数据源.pdf

    4. Mysql数据库的配置:在JBoss上配置数据源之前,必须确保Mysql数据库已经正确安装并且正常运行。需要了解的数据库配置包括数据库的监听端口,默认用户名和密码,以及数据库的命名。此外,还需要确认JBoss服务器...

    jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL

    总之,部署jBPM-JPDL v3.2到Tomcat + MySQL环境涉及多个步骤,包括系统环境的配置、相关软件的安装和设置,以及jBPM示例的运行。完成这些步骤后,你将拥有一个基础的jBPM工作流管理系统,能够进行流程的管理和监控。

    tomcat6.0安装包

    **标题解析:** "Tomcat6.0安装包"指的是Apache Tomcat的第6.0版本的安装程序,这是一个...通过提供的"tomcat6.0.exe"安装文件,用户可以轻松地在Windows环境中安装和配置Tomcat,以支持他们的JSP和Servlet应用程序。

    ejb课程测试代码,eclipse+jboss5.1 ant编译等代码

    JBoss 5.1版本支持EJB 3.0规范,该规范简化了EJB的开发,减少了XML配置,增强了可编程性。 【Ant】是Apache的一个构建工具,类似于Make,但基于Java。它通过XML定义任务来自动化构建过程,包括编译、打包、测试和...

    Tomcat 6.0软件下载

    在本讨论中,我们将深入探讨Tomcat 6.0的特点、配置、使用以及如何在MyEclipse中进行集成。 1. **Tomcat 6.0的特点** - **轻量级**:Tomcat以其轻便、高效而著名,相比其他全功能的应用服务器,如JBoss或WebLogic...

    经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2

    经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2

    绿色——TOMCAT 6.0

    【绿色——TOMCAT 6.0】 TOMCAT 6.0是一款广泛使用的开源Java Servlet容器,由Apache软件基金会的Tomcat项目开发并维护。它遵循Java EE规范,特别是Servlet和JSP标准,为开发者提供了轻量级的Web应用程序托管环境。...

    jbpm4.4+tomcat+s2sh

    【jbpm4.4+tomcat+s2sh】是一个基于Java EE的完整开发流程,它结合了jBPM 4.4(一个轻量级的工作流管理系统),Tomcat(一个流行的Java应用服务器),以及SSH(Struts2、Spring和Hibernate三大Java Web开发框架的...

    JBOSS+EJB3+MYSQL开发

    总结来说,JBOSS+EJB3+MySQL的开发涉及到以下几个关键步骤: 1. 安装和配置JBOSS服务器,确保其能够正常运行。 2. 将MySQL JDBC驱动添加到JBOSS服务器的类路径。 3. 创建并配置`mysql-ds.xml`文件,定义数据源连接...

    经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3

    经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3

    JBoss JBPM4请假流程示例

    【JBoss JBPM4请假流程示例】 JBoss JBPM4是一个开源的工作流管理系统,它为企业提供了一套灵活且强大的业务流程自动化解决方案。这个示例是关于如何在JBoss JBPM4平台上实现一个简单的请假流程,帮助开发者了解...

Global site tag (gtag.js) - Google Analytics