前段时间用jbpm做了个项目,花了很多时间来处理和spring的事务整合,找了很多资料都不是很全,贴段代码,希望对大家有帮助。
jbpm.cfg.xml文件这个地方改一下,关掉jbpm事务:
<service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<field name="isTransactionEnabled"><false/></field>
<field name="isCurrentSessionEnabled"><true/></field>
</bean>
</factory>
</service>
spring配置文件:
<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="sessionFactory" ref="sessionFactory" />
<property name="configuration" value="classpath:jbpm.cfg.xml" />
</bean>
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<constructor-arg index="0" ref="jbpmConfiguration" />
</bean>
<bean id="applyDao" parent="txProxyTemplate">
<property name="target">
<bean class="com.hljt.daos.impl.ApplyDaoImpl">
<property name="jbpmTemplate">
<ref bean="jbpmTemplate" />
</property>
</bean>
</property>
</bean>
由于springmodules里面封装的方法很少,很多方法需要接口回调(估计是叫这个我对这些名词不太了解),举个例子:
private JbpmTemplate jbpmTemplate;
public void save(final TbApply apply,TbUser user) {
this.jbpmTemplate.execute(new JbpmCallback(){
public Object doInJbpm(JbpmContext context)throws JbpmException {
ProcessDefinition pd = context.getGraphSession().findLatestProcessDefinition("apply");
ProcessInstance pi = pd.createProcessInstance();
pi.getContextInstance().setVariable("issueUser",
apply.getTbuser().getName());
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
ti.setActorId(apply.getTbuser().getName());
ti.setVariable("applyId", apply.getId());
ti.end();
context.save(pi);
return null;
}
});
}
这个东西我测试过了,事务的确整合到了一起。
分享到:
相关推荐
SSH+jBPM5.4是一个基于Java的企业级应用开发框架组合,主要涵盖了Spring、Struts和Hibernate这三大组件,以及业务流程管理(Business Process Management,简称BPM)工具jbpm5.4。这个项目组合提供了从表现层到数据...
SSH+JBPM整合是一个在Java开发领域常见的技术组合,用于构建复杂的业务流程管理系统。SSH代表Struts2、Spring和Hibernate,它们分别是MVC框架、依赖注入容器和对象关系映射库,而JBPM则是一个开源的工作流和业务流程...
SSH+JBPM4.3的整合是企业级应用开发中的一种常见组合,SSH指的是Spring、Struts和Hibernate这三个开源框架的集成,而JBPM4.3则是一个强大的工作流管理系统,用于实现业务流程自动化。这篇内容将深入探讨这两个技术...
SSH框架的整合使得开发者能够利用Struts2的MVC设计模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,实现松耦合和灵活的编程。Jbpm则是一款开源的工作流管理系统,它提供了业务流程建模、部署、...
6. **异常处理和事务管理**:在SSH+jbpm的环境中,需要考虑错误处理和事务的一致性。例如,当流程执行过程中发生错误时,如何回滚相关事务并妥善处理异常。 7. **单元测试和集成测试**:为了确保示例的正确性,项目...
SSH+JBPM4.4是一个综合的IT项目,它整合了三个主要的技术栈:Spring、Struts2和Hibernate,这些都是Java开发中非常流行的开源框架。SSH(Spring、Struts2、Hibernate)组合提供了完整的MVC(Model-View-Controller)...
在SSH框架中整合JBPM,可以实现流程的可视化设计、部署以及运行时监控。开发者可以通过jbpm-gwt-console(通常包含在webjbpm中)来设计流程图,并将其转换为XML格式的流程定义文件(.bpmn20.xml)。这些文件随后可以...
在"ssh+jbpm流程例子jar包1"中,很可能包含了一个演示如何整合SSH框架和jbPM的工作流程应用。这个示例可能展示了如何在SSH项目中配置jbPM,如何在业务逻辑中启动、控制和查询流程实例,以及如何设计和执行一个简单的...
SSH+JBPM4实现请假流程是一个企业级应用开发的经典案例,它结合了Spring、Struts2和Hibernate(SSH)这三大主流Java企业级框架,并利用JBPM4进行工作流管理。SSH框架组合提供了模型-视图-控制器(MVC)架构,而JBPM4...
SSH(Struts2 + Spring + Hibernate)是一种常见的Java Web开发框架组合,...通过对这个项目源码的学习,开发者可以深入理解SSH和JBPM的整合应用,提升在企业级应用开发中的技能,特别是在业务流程管理方面的实践能力。
ExtJs4.1+Jbpm4+SSH2+Oracle10g视频教程 视频教程正在上传中!先共享代码,有了代码,还买啥教程额! SSH2+JBPM+ExtJs4实战,JBPM是重点讲解。实战与demo的区别我不再多说,在以前工作中走过一些弯路,一些实现都是...
1. **ExtJS4+SSH2+JBPMʵۣ.docx** - 这个文件名可能包含了一个完整的实现案例,涵盖了ExtJS 4与SSH2(Spring、Struts、Hibernate三大Java开源框架的组合)以及jbpm4的整合。文档可能包含了详细步骤、代码片段和解释...
ExtJs4.1+Jbpm4+SSH2+Oracle10g视频教程 视频教程正在上传中!先共享代码,有了代码,还买啥教程额! SSH2+JBPM+ExtJs4实战,JBPM是重点讲解。实战与demo的区别我不再多说,在以前工作中走过一些弯路,一些实现都是...
在Struts 和 Hibernate 的基础上,Spring 提供了一个统一的平台,整合了这些框架并增强了它们的功能。例如,Spring 的MVC模块可以与Struts 结合,提供更强大的控制层。同时,Spring 还能与Hibernate 集成,简化数据...
在SSH整合JBPM中,Spring主要负责管理和协调各个组件,包括数据库连接、事务控制以及与JBPM的交互。 2. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的实现,用于处理HTTP请求和视图渲染。在整合...
在本系统中,Spring可能被用来管理Struts的Action实例,进行事务控制,以及提供与Hibernate的整合。 **Hibernate** 是一款流行的Java ORM(对象关系映射)框架,它简化了数据库操作,通过映射Java对象到数据库表,...
SSH-JBPM整合是将Spring、Struts2和Hibernate这三个流行的Java开源框架与Business Process Management System(业务流程管理系统)JBPM结合使用的一种实践。SSH分别代表Spring(一个强大的依赖注入和面向切面编程...
在整合过程中,`jbpm4.3 ssh.doc`可能包含关于如何配置SSH框架以适应jbpm4.3的详细步骤,`jbpm4.3&ssh 整合.doc`则可能进一步介绍了整合过程中的关键点和常见问题。`ssh整合需要的jar包目录.doc`应该列出了整合SSH与...
JBPM的配置涉及流程定义文件(.bpmn或.xml)、数据源、事务管理等。 7. **Compass**:Compass 是一个基于Lucene的搜索引擎,它简化了在Java应用中集成全文搜索的过程。配置文件`compass.cfg.xml`用于定义索引的位置...
在"ssh_jbpm4.4"项目中,SSH框架与JBPM4.4进行了整合,构建了一个Web应用实例,以展示如何在Java Web环境中使用SSH来控制和协调JBPM的工作流程。这个实例主要包含以下几个核心知识点: 1. **Struts2框架**:Struts2...