jBPM4.4与SSH2整合
整合jBPM的目的就是能够通过注入的方式得到ProcessEngine实例,因为ProcessEngine是jbpm 的核心.
整合步骤:
1.新建web程,搭建好SSH2环境
2.导入jbpm相关的两个jar包

3.在Tomcat/lib目录下添加jBPM软件包里的下列三个jar包,并删掉Tomcat/lib下的el-api.jar

这是为了解决jar包的冲突,其实就是换了一下.
4.在web工程的src目录下添加spring-jbpm4.cfg.xml配置文件
spring-jbpm4.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>
<process-engine-context>
<string name="spring.cfg" value="spring-jbpm4.xml" />
</process-engine-context>
<import resource="jbpm.default.cfg.xml" />
<import resource="jbpm.tx.spring.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.bpmn.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
<import resource="jbpm.businesscalendar.cfg.xml" />
<import resource="jbpm.console.cfg.xml" /> </jbpm-configuration>
上述文件是用来导入jBPM包中的相关配置文件
5.在applicationContext-tx.xml配置文件中的<sessionFactory元素中添加一个属性:告诉Spring实体映射文件的位置,下面的实体映射文件,在我们导入的jBPM的核心jar里已经包含了.我们不用管,只管这样配置就行了.如同配置我们自己写实体类,然后在这里配置实体映射文件一样.

<property name="mappingLocations">
<list>
<value>classpath:jbpm.execution.hbm.xml</value>
<value>classpath:jbpm.history.hbm.xml</value>
<value>classpath:jbpm.identity.hbm.xml</value>
<value>classpath:jbpm.repository.hbm.xml</value>
<value>classpath:jbpm.task.hbm.xml</value>
</list>
</property>
6.在applicationContext-beans.xml中配置jBPM相关,目的是将ProcessEngine纳入Spring管理
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">
<property name="jbpmCfg" value="spring-jbpm4.cfg.xml" />
</bean>
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
注意到
src目录下的spring-jbpm4.cfg.xml就派上用场了,其作用就不用我说了.
6.经上述几步,整合就已经完成了.下面测试,能否将ProcessEngine注入成功.
编写一个 TestAction类
TestAction.java
package com.xunpoit.action; import org.jbpm.api.ProcessEngine;
import com.opensymphony.xwork2.ActionSupport; public class TestAction extends ActionSupport {
private ProcessEngine processEngine; public ProcessEngine getProcessEngine() {
return processEngine;
} public void setProcessEngine(ProcessEngine processEngine) {
this.processEngine = processEngine;
} @Override
public String execute() throws Exception {
return "SUCCESS";
} }
将我们写的TestAction在struts.xml和applicationContext.bean中配置起来
sturts.xml中的配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<bean class="org.springframework.orm.hibernate3.support.OpenSessionInViewFilter"></bean>
<constant name="struts.objectFactory" value="spring"></constant>
<package name="jBPM_SSH2" namespace="/" extends="struts-default">
<action name="test" class="testAction">
<result name="SUCCESS">/success.jsp</result>
</action>
</package> </struts>
application-bean.xml中的配置
<bean id="testAction" class="com.xunpoit.action.TestAction" scope="prototype">
<property name="processEngine" ref="processEngine"></property>
</bean>
编写index.jsp和success.jsp两个页面
index.jsp
<body>
<form action="test.action" method="post">
<input type="submit" value="测试jBPM与ssh2整合"/>
</form>
</body>
success.jsp
<body>
整合成功:<%=request.getAttribute("processEngine")%>
</body>
7.在ssh2环境的配置文件中,我们配置了数据库相关信息,这里就要求我们要创建我们的数据库


8.部署项目,访问index.jsp
注意,项目一部署运行,在我们创建数据库jbpm_ssh2中就会自己看到自动生成了jBPM相关的18张表

访问index.jsp


9.通过上面的测试,证明整合确实成功了,已经通过注入的方式,拿到了ProcessEngine
jBPM4.4与SSH2整合的更多相关文章
- JBPM4.4与SSH2之整合
JBPM4.4与SSH2之整合(附完整源码) 这是我来到这世上二十多年来,第二次写博客啊.哈哈 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么 ...
- jBPM4.3+ssh+会签 整合配置及完整实例
大佬们的项目里有用到会签,所以趁双休日研究了下. 其实也是简单的会签情况,不过开始的时候研究了4.4,(因为先前研究的都是4.4),发现4.4跟4.3的处理方法完全不一样,搞的我比较郁闷……弄了一天, ...
- SSH2整合需要jar包解释
hibernate3.jar, Hibernate的库,必须使用的jar包 antlr-2.7.6.jar, 语法分析生成器 语言转换工具,hibernate利用它实现HQL到SQL的转换 cglib ...
- ssh2整合: No bean named 'sessionFactory' is defined(求大神指点)
applicationContext.xml 中已经配置 <bean id="sessionFactory" class="org.springframework. ...
- JBPM4.4_jBPM4.4应用(与Spring集成&自行控制事务等)
1. jBPM4.4应用 1.1. 与Spring集成(jBPM4.4 Developers Guide, Chapter 17. Spring Integration) 1.1.1. 在jbpm.c ...
- spring2.5整合struts2
首先第一步: 导入jar包: 我的做法: 导入你的基本使用的spring的jar包 和基本使用的struts2的jar包 然后struts2中有一个和spring整合的jar包一定要导入,不然会抛异常 ...
- Spring学习4-面向切面(AOP)之aspectj注解方式
一.简介 1.AOP用在哪些方面:AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理.日志管理.权限控制,异常处理等,封装起来,便于减少系统的重复代码,降低模块间的耦合 ...
- 工作流Jpbm4.4工作流知识点总结(工作流开发宝典)
原文:工作流Jpbm4.4工作流知识点总结(工作流开发宝典) Jbpm工作流开发过程中的一些知识点总结,方便以后开发使用! 目录: 一.工作流框架的搭建 二.工作流框架的流程开发 1.管理流程定义 ① ...
- JBPM4.4+SSH 整合配置及完整实例
整合jBPM4.4+ssh过程(spring接管struts2和hibernate,例中都整合在application.xml中,没有单独的jbpm.hibernate.cfg.xml): 1.在se ...
随机推荐
- java socket报文通信(二)报文的封装
昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文. 什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料.我们今天要谈的报文主要友以下几个部分组成: 3位同步 ...
- NSDictionary使用小结
http://blog.csdn.net/ms2146/article/details/8656787
- Objective-C 协议(接口)
Objective-C 协议类似于java语言中的接口 新建文件步骤:Objective-C File ---> File Type = "Protocol" @protoc ...
- 通过 sp_configure 进行 Database Mail 配置
通过 sp_configure 进行 Database Mail 配置 直接执行步骤一. 如果报错,则先执行步骤二,再执行步骤一. 一. sp_configre ; GO RECONFIGURE; G ...
- C++读取一串不知个数的数字
#include <iostream> using namespace std; int main(){ ]; ; while(cin>>shuzu[i]){ i++; } ; ...
- Web项目中用模板Jsp页面引入所有静态样式脚本文件(js,css等)
这样的好处是不需要再每个页面中都添加太多的外链接(不会减少请求数量),但对开发会更快捷,如果更改这些文件的位置或名称,只需要更改模板文件,不需要一个一个页面复制粘贴:同时可以为不同jsp页面组创建不同 ...
- ubuntu没有进入图形界面解决办法
可以通过设置runlevel 为2 来控制以后的登陆,或者是升级不完全.中间出错了,无法正常登陆.有2种方式来进入图形界面: 1. 登陆系统后,输入如下命令来启动图形界面: startx 2. 登陆系 ...
- PHP 中数组函数 isset 效率比 array_key_exists 更高
PHP 中数组函数 isset 效率比 array_key_exists 更高 PHP 浏览:4194 2014年04月05日 isset 和 array_key_exists 函数都可以用来测试数组 ...
- VS2010中<无法打开包括文件:“iostream.h”:>错误解决方法
C/C++ code? 1 2 #include <iostream.h> 改为: C/C++ code? 1 2 #include <iostream> using name ...
- GetSystemTime API可以得到毫秒级时间
用Now返回的日期格式中年只有2位,即2000年显示为00, 这似乎不太令人满意. 此外Now和Time都只能获得精确到秒的时间,为了得到更精确的毫秒级时间,可以使用API函数GetSystemTim ...