项目要用到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>
分享到:
- 2007-12-17 09:50
- 浏览 2574
- 评论(1)
- 论坛回复 / 浏览 (0 / 5476)
- 查看更多
相关推荐
2. **调整`applicationContext.xml`**:`applicationContext.xml`是Spring的核心配置文件,在这里我们需要配置数据源、事务管理器以及JBPM的相关组件。示例代码如下: ```xml <bean id="dataSource" class="org....
近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do
将JBPM4与Spring进行整合,可以充分利用Spring的灵活性和JBPM4的流程管理能力,构建高效且可扩展的OA(Office Automation)工作流系统。 在"风中叶老师讲的JBPM4与Spring整合例子代码"中,我们可以了解到如何将这两...
5. **集成Spring事务管理**:将Jbpm的事务管理委托给Spring,通过 `<tx:annotation-driven>` 或者显式配置事务管理器(PlatformTransactionManager)来实现。 6. **单元测试**:利用Spring的测试支持,编写单元测试...
将jBPM4与Spring整合,可以充分利用Spring的依赖注入和管理能力,提升jBPM4的可维护性和灵活性。本文将详细介绍两种整合jBPM4与Spring的方法。 **方法一:基于Spring的Bean定义** 1. **配置jBPM4的数据源**:在...
【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发...通过对这个项目的学习,你可以深入理解jbpm的流程设计、Spring的整合技巧以及如何在企业应用中实现流程自动化。
在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了整合,实现了更加灵活和高效的企业级应用开发。 **1. Jbpm简介** Jbpm4.4是Jbpm系列的一个版本,它主要负责处理业务流程的建模、执行、管理和监控。它支持...
通过JBPM4.4、Spring和EXT的整合,可以构建出一个功能完善、易用性强的流程管理系统,不仅能够有效地管理业务流程,还能提供直观的用户界面,提升用户体验。这种整合方式在现代企业级应用中具有很高的实用价值。
将Jbpm整合到Spring中,可以利用Spring的强大功能来管理和控制Jbpm的工作流实例,提高系统的可维护性和可扩展性。 在集成过程中,关键知识点包括: 1. **Spring配置**:首先,需要在Spring的配置文件中引入Jbpm的...
- **事务管理**:Spring的事务管理器可以与JBPM的事务管理相结合,确保流程操作的原子性和一致性。 - **AOP集成**:Spring的AOP可以在流程执行的关键点添加拦截器,实现日志记录、权限检查等功能。 - **Bean管理**:...
2. **Spring的整合机制**:Spring的Bean管理机制使得jbpm的组件如流程引擎、任务服务等可以被方便地注入到Spring容器中,实现依赖管理和生命周期管理。同时,Spring的AOP特性可用来实现流程相关的切面逻辑,如事务...
【JBPM5与Spring整合详解】 ...通过这样的整合,我们可以利用Spring的强大功能来简化jbpm的应用开发,同时保证流程的灵活和可扩展性。在实际项目中,可以根据具体需求调整配置和实现细节,以满足业务场景的需求。
3. **整合原理**:Spring与JBPM的整合主要基于Spring的bean管理和事务管理能力。通过Spring的ApplicationContext,我们可以配置和管理JBPM的相关组件,如流程引擎、数据源、事务管理器等。同时,Spring的AOP可以用来...
在这个整合中,jbpm4需要与Struts2、Spring2.5和Hibernate3.3协同工作,实现流程定义、流程实例管理、事务控制和数据持久化。首先,jbpm4本身拥有一个IOC容器,但为了更好地整合其他框架,通常会选择Spring作为统一...
jbpm4与SSH框架的整合是将jBPM(java Business Process Managerment)这一轻量级工作流引擎与Struts2、Spring和Hibernate(SSH)这三大主流Java开发框架结合的过程,以实现企业级应用中的业务流程管理和控制。jBPM是...
2. **初始化JBPM**:在Spring配置文件中,配置JBPM的数据源、事务管理器、流程引擎等组件,通过Spring的Bean管理来初始化和管理这些组件。 3. **流程定义**:使用BPMN2标准的流程设计工具(如Eclipse BPMN2插件)...
8. **异常处理和事务管理**:由于Spring和jBPM都支持事务管理,确保在异常发生时能够正确回滚事务是非常重要的。配置Spring的事务管理器,并确保与jBPM的事务配置相协调。 9. **规则集成**:jBPM集成了Drools规则...
总的来说,Spring与JBPM的整合涉及到环境配置、流程设计、依赖管理和事务集成等多个方面。通过精心的配置和设计,开发者可以利用这两个强大的工具构建出灵活、高效且易于维护的业务流程管理系统。