jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL
关键字: jbpm jpdl 部署 tomcat mysql 工作流相关资料:
系统平台:
系统环境:
Windows 2003 | SUN JDK1.6U4 | Tomcat6.0.14 | jbpm-starters-kit-3.1.4 | MySQL 6.0
主机完整名称:
zsy-aten
浏览器
Internet Explorer 6.0
安装包及相关软件:
1、 安装JDK与MySQL
JDK的安装这里就不多说了,学过Java的人都知道,本实验安装的是jdk-6u4版本。安装完后记得添加JAVA_HOME的环境变量。
MySQL的安装不属于本文的介绍范围,请参阅相关文档。本实验安装的是MySQL 6.0版本,安装完后建立的数据库名为jbpm,创建的用户名为jbpmuser,密码为shine。
2、 安装Tomcat下载安装Tomcat-6.0.16是目前最新版本:http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.exe ;要在JDK安装之后安装Tomcat,安装过程中会自动搜索JRE的目录,当然也可以选择其它的JRE,其它默认设置即可。
3、 安装AntAnt 是一个编译工具,使用 jBPM 时必须用它来编译文件, jBPM 中的很多操作都要用到 Ant ,安装方法如下:
(1) 先下载:http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.0-bin.zip;
(2) 解压到 E:\Java\tools\apache-ant-1.7.0 (当然其他目录也可以);
(3) 设置环境变量:ANT_HOME= E:\Java\tools\apache-ant-1.7.0;
(4)把 %ANT_HOME%\bin 加入到环境变量 PATH 中。
4、 安装jBPM下载jBPM-JPDL本为3.2.2:http://labs.jboss.com/jbossjbpm/jbpm_downloads/下载jPDL Suite版,这个版本是包含所有的一整套工具,下载后是个压缩包解压到 E:\Java\tools :、\jbpm-jpdl-3.2.2 ,目录下主要包含以下几个子目录:
l src —— jBPM 的源代码
l config —— jBPM及Hibernate与log4j的配置文件
l db —— 各种数据库的建表SQL语句
l lib —— 依赖的第三方依赖类库
l doc —— API文档及用户使用向导
l designer —— 辅助开发 jBPM 的 Eclipse 插件,具体在 eclipse子目录中
l server —— 一个已经配置好了的基于 JBoss 的 jBPM 控制台及示例
5、 安装Eclipse及jBPM开发插件Eclipse不是开发 jBPM 必须的工具,但它是对 jBPM 开发很有帮助的工具,特别是 jBPM 提供了一个 Eclipse 插件用来辅助开发 jBPM 。关于 Eclipse 的安装请参阅相关文档。本实验安装的是MyEclipse6.0集成Eclipse3.3。
安装完Eclipse安装jBPM的开发插件,步骤如下:
(1) 打开Eclipse选择菜单“Help->Software Updates->Find and Install”;
(2) 弹出窗口中选择“Search for new features to install”,然后点击“Next >”;如图

(3) 点击按扭“New Local Site…”选择插件目录,位于designer\ eclipse目录下,如:E:\Java\tools\jbpm-jpdl-3.2.2\designer\eclipse。选定后点“OK”,如图

(4) 选中“designer/eclipse”,然后点击“Finish”,如图
(5) 然后选择同意条款,接提示步骤安装就可以了。
到此为止需要的所有工具都安装好了。接下来先体验一下jBPM工作流。在 JBoss jBPM Starters Kit 的 jbpm-server 目录是一个已经在JBoss中配置好的了 jBPM 示例,双击 jbpm-server 目录下的 start.bat 文件,启动 JBoss 服务。打开网页: http://localhost:8080/ jbpm-console 得到如下页面:

这是一个流程控制管理平台,用右边的账号与密码就可以登录,这个控制台包括流程管理,可以部署流程、删除流程、查看流程图、管理流程实例等;还有任务管理,工作管理及用户与用户组管理。
基于Tomcat和MySQL的部署:
现在要把上面演示的例子部署到Tomcat中,并将数据数配置为MySQL。
STEP 1,初始化数据库jBPM 需要数据库支持, jBPM 会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。 jBPM 使用 Hibernate 作为的存储层。在E:\Java\tools\jbpm-jpdl-3.2.2\db\目录下有个jbpm.jpdl.mysql.sql数据库脚本文件。我们不能直接导入该文件, 会提示有错误, 应为该文件格式有问题, 首先打开该文件(推荐UltraEdit), 把前面的 alter table JBPM_XX 语句都删除(因为我们使用的是新的数据库,所以需要这些语句, 这个脚本文件是升级3.2的数据库表结构用的) 然后在每一行前面添加一个分号 不然脚本执行会出错。这样就可以用source命令导入了。 导入后, 表结构创建成功。
STEP 2,准备发布包在E:\Java\tools\jbpm-jpdl-3.2.2\deploy 文件夹下 运行ant customize.console.for.tomcat。执行命令后会在 E:\Java\tools\jbpm-jpdl-3.2.2\deploy\customized文件夹下生成一个jbpm-console.war 文件,用WinRaR解压开,并复制到已安装Tomcat的webapps目录下,jbpm还需三个依赖类库,分别是commons-collections.jar、ehcache-1.2.3.jar、jta.jar,当然还有个MySQL驱动mysql-connector-java-5.0.7-bin.jar,添加这些jar文件 到 \$CATALINA_HOME\webapps\jbpm-console\WEB-INF\lib目录下。
STEP 3,修改Hibernate数据库配置文件修改\$CATALINA_HOME\webapps\jbpm-console\WEB-INF\classes下hibernate.cfg.xml文件。这是Hibernate的数据库配置文件,要做一些修改,原来内容如下:
<!-- hibernate dialect --> <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property> <!-- JDBC connection properties (begin) === <property name="hibernate.connection.driver_class"> org.hsqldb.jdbcDriver</property> <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></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) --> |
修改后如下:
<!-- hibernate dialect --> <property name="hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect</property> <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">jbpmuser</property> <property name="hibernate.connection.password">shine</property> <property name="hibernate.cache.provider_class"> org.hibernate.cache.HashtableCacheProvider</property> |
有两种方法都可以实现,但摧荐第一种方法。
方法一:配置一个JDBC Realm,在\$CATALINA_HOME\webapps\jbpm-console\META-INF目录下新建context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/jbpm" connectionName="jbpmuser" connectionPassword="shine" 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> |
STEP 5,初始化基础的用户数据
在MySQL数据库中执行以下SQL语句,进行初始化用户信息,如下:
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(12,'M',NULL,NULL,1,1); |
启动时查看Tomcat的日志,检查是否正常启动,未添加所有支持库或数据库配置出错,都会引起启动失败。
注意:到此为止启动Tomcat,JBPM服务就能正常运行了,已经可以在上面发布流程,接着第五步中部署一个jbpm自带的流程例子。
STEP 7,发布例子流程
打开网页:http://localhost:8080/jbpm 得到如下页面就说明已经部署成功:
用右边的manage账号登录,如下图:

点击“Deploy”转到部署流程页面,点击“浏览”按扭选择E:\Java\tools\jbpm-jpdl-3.2.2\examples\websale\target\websale.jpdl文件,名后点击“Deploy”按扭部署。
- 15:15
- 浏览 (10519)
- 论坛浏览 (9766)
- 评论 (44)
- 分类: 程序人生
- 发布在 JBPM @net 圈子
- 相关推荐
评论
JBPM现在用的人很少吗?有其它更好的选择吗?
就是说把 jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL 在加上一个mycelipse
太感谢了,太有才了 想亲你一下
在 5、 安装Eclipse及jBPM开发插件 中的第(3)点选择插件目录的时候,你的文字说明和示例图中显示的不一样,是怎么回事呢?哪个才是对的?
第一种方法进入登录页面后输入用户密码老是提示Login failed. Invalid user name or password.
第二种方法进入登录页面后输入用户密码成功,但是没有数据,发布流程时也是错误,好像还是没有连接到数据库,但是我把mysql的包放到项目和tomcat里面去了,晕。
请问是什么原因
在E:\Java\tools\jbpm-jpdl-3.2.2\deploy 文件夹下 运行ant customize.console.for.tomcat。
这句话是什么意思呢 不好意思哈 我比较菜
它会报错
HTTP Status 404 - /jbpm-console/
--------------------------------------------------------------------------------
type Status report
message /jbpm-console/
description The requested resource (/jbpm-console/) is not available.
commons-el.jar可以在tomcat 5.x中找到,我使用的是5.5.12版本
我的应用能起来,但登陆时:(第四步是用方式1)
Login failed. Invalid user name or password.
用第一种方式需在tomcat的lib中加入mysql包,才行
就是按照linliangyi2007的办法:不过我用的数据库是oracle
先把webconsole发布到tomcat下,在这个过程中ehcache-1.2.3.jar、jta.jar这两个包我没找到。
然后访问http://localhost:8080/jbpm-console,进入webconsole界面,用manager登陆,出现下面的提示:Error loading process list: An exception of type "org.jbpm.JbpmException" was thrown. The message is: couldn't find all process definitions
这个我想可能没什么问题,因为现在还没发布任何流程定义。
然后发布websale例子,点击浏览,选择jbpm-jpdl-3.2.2\examples\websale\targetr下面的websale.jpdl,之后点击deploy按钮就出现了上面的错误提示Error deploying process: An exception of type "org.jbpm.JbpmException" was thrown. The message is: couldn't find process definition 'websale'
之后用manager登陆后提示:
Error loading process list: An exception of type "org.jbpm.JbpmException" was thrown. The message is: couldn't find all process definitions
用webconsole发布websale时出现下面的错误提示:
Error deploying process: An exception of type "org.jbpm.JbpmException" was thrown. The message is: couldn't find process definition 'websale'
我的应用能起来,但登陆时:(第四步是用方式1)
Login failed. Invalid user name or password.
使用方式2却是可以的。
java.lang.NoClassDefFoundError: bsh/TargetError
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at org.hibernate.property.BasicPropertyAccessor.getterMethod(BasicPropertyAccessor.java:317)
这又是少了什么?
少了bsh-xxx.jar,网上找找就有了
我的应用能起来,但登陆时:(第四步是用方式1)
Login failed. Invalid user name or password.
使用方式2却是可以的。
java.lang.NoClassDefFoundError: bsh/TargetError
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at org.hibernate.property.BasicPropertyAccessor.getterMethod(BasicPropertyAccessor.java:317)
这又是少了什么?
严重: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: edu/emory/mathcs/backport/java/util/Arrays
at com.sun.faces.renderkit.RenderKitUtils.<clinit>(RenderKitUtils.java:155)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:468)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
2008-4-28 14:12:46 org.apache.catalina.core.StandardContext listenerStop
严重: Exception sending context destroyed event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: edu/emory/mathcs/backport/java/util/concurrent/ConcurrentMap
at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:498)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3770)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4339)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
这是什么包呀?
控制台信息:
信息: WARNING: Security role name user used in an <auth-constraint> without being defined in a <security-role>
2008-4-28 14:12:45 com.sun.faces.config.ConfigureListener contextInitialized
信息: Initializing Sun's JavaServer Faces implementation (1.2_03-b09-FCS) for context 'null'
已解决。
step7笔误了
应该是jbpm-console
我按照LZ的步骤一步一步来的,还有很多 的错误,到现在还没有解决。
我的相册
共 155 张
链接
最新评论
-
lucene开源中文分词器 IKA ...
niuxuanhu 写道请问,能否增加自定义的词库,然后根据这个词库来分词呀?j ...
-- by shguan@toptimetech.com -
JA-SIG(CAS)学习笔记3
lynxpengpeng 写道我想请教一个问题。用cas配置成功之后,系统的授权 ...
-- by drliujia -
JA-SIG(CAS)学习笔记3
我想请教一个问题。用cas配置成功之后,系统的授权工作怎么做啊?没有cas之前, ...
-- by lynxpengpeng -
WebGIS空间寻径算法设计( ...
理论性太强,可要是明白了,实践也没问题,可根本不懂,就很难了。哎,只能苦思冥想啦 ...
-- by love_zhangxsh -
jBPM-JPDL v3.2环境部署— ...
JBPM入门级的资料不少,但是,却缺少从前到后的展示资料,比如,使用ssh结构的 ...
-- by flyeagle







评论排行榜