整合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整合的更多相关文章

  1. JBPM4.4与SSH2之整合

    JBPM4.4与SSH2之整合(附完整源码) 这是我来到这世上二十多年来,第二次写博客啊.哈哈  这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么 ...

  2. jBPM4.3+ssh+会签 整合配置及完整实例

    大佬们的项目里有用到会签,所以趁双休日研究了下. 其实也是简单的会签情况,不过开始的时候研究了4.4,(因为先前研究的都是4.4),发现4.4跟4.3的处理方法完全不一样,搞的我比较郁闷……弄了一天, ...

  3. SSH2整合需要jar包解释

    hibernate3.jar, Hibernate的库,必须使用的jar包 antlr-2.7.6.jar, 语法分析生成器 语言转换工具,hibernate利用它实现HQL到SQL的转换 cglib ...

  4. ssh2整合: No bean named 'sessionFactory' is defined(求大神指点)

    applicationContext.xml 中已经配置 <bean id="sessionFactory" class="org.springframework. ...

  5. JBPM4.4_jBPM4.4应用(与Spring集成&自行控制事务等)

    1. jBPM4.4应用 1.1. 与Spring集成(jBPM4.4 Developers Guide, Chapter 17. Spring Integration) 1.1.1. 在jbpm.c ...

  6. spring2.5整合struts2

    首先第一步: 导入jar包: 我的做法: 导入你的基本使用的spring的jar包 和基本使用的struts2的jar包 然后struts2中有一个和spring整合的jar包一定要导入,不然会抛异常 ...

  7. Spring学习4-面向切面(AOP)之aspectj注解方式

    一.简介    1.AOP用在哪些方面:AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理.日志管理.权限控制,异常处理等,封装起来,便于减少系统的重复代码,降低模块间的耦合 ...

  8. 工作流Jpbm4.4工作流知识点总结(工作流开发宝典)

    原文:工作流Jpbm4.4工作流知识点总结(工作流开发宝典) Jbpm工作流开发过程中的一些知识点总结,方便以后开发使用! 目录: 一.工作流框架的搭建 二.工作流框架的流程开发 1.管理流程定义 ① ...

  9. JBPM4.4+SSH 整合配置及完整实例

    整合jBPM4.4+ssh过程(spring接管struts2和hibernate,例中都整合在application.xml中,没有单独的jbpm.hibernate.cfg.xml): 1.在se ...

随机推荐

  1. asp.net从服务器(指定文件夹)下载任意格式的文件到本地

    一.我需要从服务器下载ppt文件到本地 protected void Btn_DownPPT_Click(object sender, EventArgs e)        {            ...

  2. C#串口扫描

    1.传入serialport 和待显示串口的Commbox private void Search_AddSerialToComboBox(SerialPort MyPort, ComboBox My ...

  3. hdu5347 MZL's chemistry(打表)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's chemistry Time Limit: 2000/1000 MS ...

  4. hdu5338 ZZX and Permutations(贪心、线段树)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud ZZX and Permutations Time Limit: 6000/300 ...

  5. Effective C++ 第二版 5)new和delete形式 6) 析构函数里的delete

    内存管理 1)正确得到: 正确调用内存分配和释放程序; 2)有效使用: 写特定版本的内存分配和释放程序; C中用mallco分配的内存没有用free返回, 就会产生内存泄漏, C++中则是new和de ...

  6. Android 开发中关于layoutinflater

    Inflater英文意思是膨胀,在Android中应该是扩展的意思吧. LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout ...

  7. Windows软件使用Q&A集锦【持续更新】

    以下不注明原创的均为转载,感谢原作者,希望大家电脑用的都舒心 Q: QQ电脑管家的默认程序的程序推荐如何关闭?我右键点击文件打开方式,选择默认程序的时候,qq管家总弹出来,还给我推荐程序.如何关闭? ...

  8. POJ 3709 K-Anonymous Sequence (单调队列优化)

    题意:给定一个不下降数列,一个K,将数列分成若干段,每段的数字个数不小于K,每段的代价是这段内每个数字减去这段中最小数字之和.求一种分法使得总代价最小? 思路:F[i]表示到i的最小代价.f[i]=m ...

  9. Win7/Win8/Win8.1众多版本,我该选择哪个?

    当你要下载Win7或者Win8/8.1镜像时,是不是被Windows版本种类给吓着了?到底该选择哪种版本的?其实,大多数人用的就那一两个版本,这也是推荐选择的版本,请看快速通道.如果你想了解的更多一点 ...

  10. 发送cookie