`
ppig
  • 浏览: 2573 次
  • 性别: Icon_minigender_1
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jBPM和spring的事务整合

阅读更多
项目要用到jBPM。由于是不同数据库schema,所以使用了JTA。
当在把jBPM整合到spring的时候用到了spring-extensions(spring-modules)。
贴出来,各位看有什么不好的地方。

步骤:
1.jBPM -> spring
2.配置jta,并把jbpm和自己的bizniz纳入到jta里


applicationContext-jbpm.xml

	<bean id="jbpmDataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
        <property name="dataSource">
            <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
	            <property name="transactionManager" ref="jotm" />
				<property name="driverName"	value="${jbpm.jdbc.driverClassName}" />
				<property name="url" value="${jbpm.jdbc.url}" />
		    </bean>
        </property>
        <property name="user" value="${jbpm.jdbc.username}" />
		<property name="password" value="${jbpm.jdbc.password}" />
    </bean>
	
	
	<bean id="jbpmSessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="jbpmDataSource" />
		</property>

		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.show_sql">false</prop>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLInnoDBDialect
				</prop>
				<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
				<prop key="hibernate.connection.autocommit">false</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<!-- hql queries and type defs -->
			    <value>org/jbpm/db/hibernate.queries.hbm.xml</value>
			    
			    <!-- graph.def mapping files -->
			    <value>org/jbpm/graph/def/ProcessDefinition.hbm.xml</value>
			    <value>org/jbpm/graph/def/Node.hbm.xml</value>
			    <value>org/jbpm/graph/def/Transition.hbm.xml</value>
			    <value>org/jbpm/graph/def/Event.hbm.xml</value>
			    <value>org/jbpm/graph/def/Action.hbm.xml</value>
			    <value>org/jbpm/graph/def/SuperState.hbm.xml</value>
			    <value>org/jbpm/graph/def/ExceptionHandler.hbm.xml</value>
			    <value>org/jbpm/instantiation/Delegation.hbm.xml</value>
			
			    <!-- graph.node mapping files -->
			    <value>org/jbpm/graph/node/StartState.hbm.xml</value>
			    <value>org/jbpm/graph/node/EndState.hbm.xml</value>
			    <value>org/jbpm/graph/node/ProcessState.hbm.xml</value>
			    <value>org/jbpm/graph/node/Decision.hbm.xml</value>
			    <value>org/jbpm/graph/node/Fork.hbm.xml</value>
			    <value>org/jbpm/graph/node/Join.hbm.xml</value>
			    <value>org/jbpm/graph/node/State.hbm.xml</value>
			    <value>org/jbpm/graph/node/TaskNode.hbm.xml</value>
			
			    <!-- context.def mapping files -->
			    <value>org/jbpm/context/def/ContextDefinition.hbm.xml</value>
			    <value>org/jbpm/context/def/VariableAccess.hbm.xml</value>
			
			    <!-- taskmgmt.def mapping files -->
			    <value>org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/def/Swimlane.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/def/Task.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/def/TaskController.hbm.xml</value>
			
			    <!-- module.def mapping files -->
			    <value>org/jbpm/module/def/ModuleDefinition.hbm.xml</value>
			
			    <!-- bytes mapping files -->
			    <value>org/jbpm/bytes/ByteArray.hbm.xml</value>
			
			    <!-- file.def mapping files -->
			    <value>org/jbpm/file/def/FileDefinition.hbm.xml</value>
			
			    <!-- scheduler.def mapping files -->
			    <value>org/jbpm/scheduler/def/CreateTimerAction.hbm.xml</value>
			    <value>org/jbpm/scheduler/def/CancelTimerAction.hbm.xml</value>
			
			    <!-- graph.exe mapping files -->
			    <value>org/jbpm/graph/exe/Comment.hbm.xml</value>
			    <value>org/jbpm/graph/exe/ProcessInstance.hbm.xml</value>
			    <value>org/jbpm/graph/exe/Token.hbm.xml</value>
			    <value>org/jbpm/graph/exe/RuntimeAction.hbm.xml</value>
			
			    <!-- module.exe mapping files -->
			    <value>org/jbpm/module/exe/ModuleInstance.hbm.xml</value>
			        
			    <!-- context.exe mapping files -->
			    <value>org/jbpm/context/exe/ContextInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/TokenVariableMap.hbm.xml</value>
			    <value>org/jbpm/context/exe/VariableInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml</value>
			    <value>org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml</value>
			
			    <!-- msg.db mapping files -->
			    <value>org/jbpm/msg/Message.hbm.xml</value>
			    <value>org/jbpm/msg/db/TextMessage.hbm.xml</value>
			    <value>org/jbpm/command/ExecuteActionCommand.hbm.xml</value>
			    <value>org/jbpm/command/ExecuteNodeCommand.hbm.xml</value>
			    <value>org/jbpm/command/SignalCommand.hbm.xml</value>
			    <value>org/jbpm/command/TaskInstanceEndCommand.hbm.xml</value>
			
			    <!-- taskmgmt.exe mapping files -->
			    <value>org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/exe/PooledActor.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml</value>
			
			    <!-- scheduler.exe mapping files -->
			    <value>org/jbpm/scheduler/exe/Timer.hbm.xml</value>
			
			    <!-- logging mapping files -->
			    <value>org/jbpm/logging/log/ProcessLog.hbm.xml</value>
			    <value>org/jbpm/logging/log/MessageLog.hbm.xml</value>
			    <value>org/jbpm/logging/log/CompositeLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/ActionLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/NodeLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/ProcessStateLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/SignalLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/TokenCreateLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/TokenEndLog.hbm.xml</value>
			    <value>org/jbpm/graph/log/TransitionLog.hbm.xml</value>
			    <value>org/jbpm/context/log/VariableLog.hbm.xml</value>
			    <value>org/jbpm/context/log/VariableCreateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/VariableDeleteLog.hbm.xml</value>
			    <value>org/jbpm/context/log/VariableUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml</value>
			    <value>org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/TaskLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml</value>
			    <value>org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml</value>
			</list>
		</property>
	</bean>

(省略了其他的jbpmconfiguration和flow的配置)


applicationContext-jta.xml
	<bean id="jotm"
		class="org.springframework.transaction.jta.JotmFactoryBean" />

	<bean id="transactionManager"
		class="org.springframework.transaction.jta.JtaTransactionManager">
		<property name="userTransaction" ref="jotm" />
	</bean>
分享到:
评论
1 楼 renavatior 2008-04-02  
朋友能联系我吗?我也想做Spring+jbpm+struts2的一个系统,但是设计架构方面有点不太确定,希望能交流
QQ:389951723email:gurnfe◎163.com

相关推荐

    jbpm4.3与spring整合

    2. **调整`applicationContext.xml`**:`applicationContext.xml`是Spring的核心配置文件,在这里我们需要配置数据源、事务管理器以及JBPM的相关组件。示例代码如下: ```xml &lt;bean id="dataSource" class="org....

    jbpm4和spring整合例子

    近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do

    JBPM4与Spring整合例子代码

    将JBPM4与Spring进行整合,可以充分利用Spring的灵活性和JBPM4的流程管理能力,构建高效且可扩展的OA(Office Automation)工作流系统。 在"风中叶老师讲的JBPM4与Spring整合例子代码"中,我们可以了解到如何将这两...

    jbpm4.3-spring2.5整合

    5. **集成Spring事务管理**:将Jbpm的事务管理委托给Spring,通过 `&lt;tx:annotation-driven&gt;` 或者显式配置事务管理器(PlatformTransactionManager)来实现。 6. **单元测试**:利用Spring的测试支持,编写单元测试...

    jBPM4与Spring整合的2种方式

    将jBPM4与Spring整合,可以充分利用Spring的依赖注入和管理能力,提升jBPM4的可维护性和灵活性。本文将详细介绍两种整合jBPM4与Spring的方法。 **方法一:基于Spring的Bean定义** 1. **配置jBPM4的数据源**:在...

    jbpm+spring配置

    【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发...通过对这个项目的学习,你可以深入理解jbpm的流程设计、Spring的整合技巧以及如何在企业应用中实现流程自动化。

    Jbpm4.4 整合Spring Hibernate4

    在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了整合,实现了更加灵活和高效的企业级应用开发。 **1. Jbpm简介** Jbpm4.4是Jbpm系列的一个版本,它主要负责处理业务流程的建模、执行、管理和监控。它支持...

    JBPM4.4+spring+ext整合

    通过JBPM4.4、Spring和EXT的整合,可以构建出一个功能完善、易用性强的流程管理系统,不仅能够有效地管理业务流程,还能提供直观的用户界面,提升用户体验。这种整合方式在现代企业级应用中具有很高的实用价值。

    jbpm4.0.0alpha2整合到spring

    将Jbpm整合到Spring中,可以利用Spring的强大功能来管理和控制Jbpm的工作流实例,提高系统的可维护性和可扩展性。 在集成过程中,关键知识点包括: 1. **Spring配置**:首先,需要在Spring的配置文件中引入Jbpm的...

    JBPM5 整合Spring3经典案例

    - **事务管理**:Spring的事务管理器可以与JBPM的事务管理相结合,确保流程操作的原子性和一致性。 - **AOP集成**:Spring的AOP可以在流程执行的关键点添加拦截器,实现日志记录、权限检查等功能。 - **Bean管理**:...

    jbpm与spring集成

    2. **Spring的整合机制**:Spring的Bean管理机制使得jbpm的组件如流程引擎、任务服务等可以被方便地注入到Spring容器中,实现依赖管理和生命周期管理。同时,Spring的AOP特性可用来实现流程相关的切面逻辑,如事务...

    JBPM5 Spring 例子

    【JBPM5与Spring整合详解】 ...通过这样的整合,我们可以利用Spring的强大功能来简化jbpm的应用开发,同时保证流程的灵活和可扩展性。在实际项目中,可以根据具体需求调整配置和实现细节,以满足业务场景的需求。

    spring与JBPM整合ppt

    3. **整合原理**:Spring与JBPM的整合主要基于Spring的bean管理和事务管理能力。通过Spring的ApplicationContext,我们可以配置和管理JBPM的相关组件,如流程引擎、数据源、事务管理器等。同时,Spring的AOP可以用来...

    jbpm4整合struts2+spring2.5+hibernate3.3

    在这个整合中,jbpm4需要与Struts2、Spring2.5和Hibernate3.3协同工作,实现流程定义、流程实例管理、事务控制和数据持久化。首先,jbpm4本身拥有一个IOC容器,但为了更好地整合其他框架,通常会选择Spring作为统一...

    jbpm与ssh框架整合

    jbpm4与SSH框架的整合是将jBPM(java Business Process Managerment)这一轻量级工作流引擎与Struts2、Spring和Hibernate(SSH)这三大主流Java开发框架结合的过程,以实现企业级应用中的业务流程管理和控制。jBPM是...

    Jbpm4与SSH整合

    2. **初始化JBPM**:在Spring配置文件中,配置JBPM的数据源、事务管理器、流程引擎等组件,通过Spring的Bean管理来初始化和管理这些组件。 3. **流程定义**:使用BPMN2标准的流程设计工具(如Eclipse BPMN2插件)...

    spring3.2+jBPM6整合实例

    8. **异常处理和事务管理**:由于Spring和jBPM都支持事务管理,确保在异常发生时能够正确回滚事务是非常重要的。配置Spring的事务管理器,并确保与jBPM的事务配置相协调。 9. **规则集成**:jBPM集成了Drools规则...

    Spring Jbpm流程整合1

    总的来说,Spring与JBPM的整合涉及到环境配置、流程设计、依赖管理和事务集成等多个方面。通过精心的配置和设计,开发者可以利用这两个强大的工具构建出灵活、高效且易于维护的业务流程管理系统。

Global site tag (gtag.js) - Google Analytics