- 浏览: 101731 次
- 性别:
- 来自: 长春
文章分类
最新评论
-
chao8796:
吃的真多
方便面烹饪法 -
rmn190:
看下这个类: org.jbpm.web.JbpmThreads ...
Jbpm + Spring 配置
Spring 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- ibatis START ====================================================== --> <bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName" value="mysql/ns"/> <property name="xaDataSourceClassName" value="${jdbc.xa.driverClassName}"/> <property name="xaProperties"> <props> <prop key="URL">${jdbc.url.ns}</prop> <prop key="user">${jdbc.username}</prop> <prop key="password">${jdbc.password}</prop> </props> </property> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="5"/> <property name="maxIdleTime" value="10"/> <property name="testQuery" value="select 1"/> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" p:dataSource-ref="dataSource" p:configLocation="classpath:sqlmap-config.xml" /> <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate" p:sqlMapClient-ref="sqlMapClient" /> <!-- ibatis END ======================================================== --> <!-- jbpm3 START ======================================================= --> <bean id="jbpm3DataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" destroy-method="close"> <property name="uniqueResourceName" value="mysql/jbpm3"/> <property name="xaDataSourceClassName" value="${jdbc.xa.driverClassName}"/> <property name="xaProperties"> <props> <prop key="URL">${jdbc.url.jbpm3}</prop> <prop key="user">${jdbc.username}</prop> <prop key="password">${jdbc.password}</prop> </props> </property> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="5"/> <property name="maxIdleTime" value="10"/> <property name="testQuery" value="select 1"/> </bean> <bean id="jbpm3SessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="jbpm3DataSource"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> <property name="mappingLocations" value="classpath*:/org/jbpm/**/*.hbm.xml"/> </bean> <bean id="jbpm3Configuration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean" p:sessionFactory-ref="jbpm3SessionFactory" p:configuration="classpath:jbpm3.cfg.xml" p:createSchema="false" /> <bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate"> <constructor-arg index="0" ref="jbpm3Configuration"/> </bean> <!-- jbpm3 END ========================================================= --> <!-- jbpm4 START ======================================================= --> <bean id="jbpm4DataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" destroy-method="close"> <property name="uniqueResourceName" value="mysql/jbpm4"/> <property name="xaDataSourceClassName" value="${jdbc.xa.driverClassName}"/> <property name="xaProperties"> <props> <prop key="URL">${jdbc.url.jbpm4}</prop> <prop key="user">${jdbc.username}</prop> <prop key="password">${jdbc.password}</prop> </props> </property> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="5"/> <property name="maxIdleTime" value="10"/> <property name="testQuery" value="select 1"/> </bean> <!-- jbpm4SessionFactory --> <bean id="jbpm4SessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="jbpm4DataSource"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>jbpm.repository.hbm.xml</value> <value>jbpm.execution.hbm.xml</value> <value>jbpm.history.hbm.xml</value> <value>jbpm.task.hbm.xml</value> </list> </property> </bean> <bean id="jbpm4Configuration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration"> <constructor-arg value="jbpm42.spring.cfg.xml" /> </bean> <bean id="processEngine" factory-bean="jbpm4Configuration" factory-method="buildProcessEngine" /> <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" /> <bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" /> <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" /> <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /> <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" /> <!-- jbpm4 END ========================================================= --> <!-- transaction START ================================================= --> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" p:forceShutdown="true" /> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp" p:transactionTimeout="300"/> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" p:transactionManager-ref="atomikosTransactionManager" p:userTransaction-ref="atomikosUserTransaction" /> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true" rollback-for="java.lang.Exception"/> <tx:method name="*" rollback-for="java.lang.Exception" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <aop:config> <aop:advisor pointcut="execution(* org.kyll.ns.*..*Facade.*(..))" advice-ref="txAdvice"/> </aop:config> <!-- transaction END =================================================== --> </beans> Jbpm 4.2 配置文件 <?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <process-engine-context> <command-service name="txRequiredCommandService"> <skip-interceptor/> <retry-interceptor/> <environment-interceptor/> <spring-transaction-interceptor/> </command-service> <command-service name="newTxRequiredCommandService"> <retry-interceptor/> <environment-interceptor policy="requiresNew"/> <spring-transaction-interceptor/> </command-service> <repository-service/> <repository-cache/> <execution-service/> <history-service/> <management-service/> <identity-service/> <task-service/> <!--<hibernate-session-factory/>--> <deployer-manager> <jpdl-deployer/> </deployer-manager> <!--<job-executor/>--> <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator"> <field name="commandService"> <ref object="newTxRequiredCommandService"/> </field> </object> <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager"/> <script-manager default-expression-language="juel" default-script-language="juel"> <script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory"/> </script-manager> <types resource="jbpm.variable.types.xml"/> <address-resolver/> <business-calendar> <monday hours="9:00-12:00 and 12:30-17:00"/> <tuesday hours="9:00-12:00 and 12:30-17:00"/> <wednesday hours="9:00-12:00 and 12:30-17:00"/> <thursday hours="9:00-12:00 and 12:30-17:00"/> <friday hours="9:00-12:00 and 12:30-17:00"/> <holiday period="01/07/2008 - 31/08/2008"/> </business-calendar> </process-engine-context> <transaction-context> <hibernate-session factory="jbpm4SessionFactory" current="true"/> <repository-session/> <db-session/> <message-session/> <timer-session/> <history-session/> </transaction-context> </jbpm-configuration>
这篇配置文件包括 Spring + iBatis + Jbpm3 + Jbpm4.2 和跨数据源的事务, 留作自己备忘^_^。
注意: Jbpm4.2 配置中的 <hibernate-session factory="jbpm4SessionFactory" current="true"/> 这行, factory="jbpm4SessionFactory" 和 current="true" 不加的时候, 会引起异常, factory 指定使用哪个 SessionFactory, 查了源码才知道是这个属性, 唉~~~~~~ Jbpm 的源码就不能再好好写吗?不看源码鬼才知道是这个属性!
发表评论
-
Spring Security 2.0.5 实现 Http 与 Https 切换
2009-12-05 00:04 5081<security:http entry-point ... -
23个设计模式列表
2007-09-12 08:40 2928创建型模式... 1. ... -
JavaFX 备忘录
2007-09-12 08:20 1016疯了, 完全疯了, 这 ... -
转贴 学习 侯捷谈Java反射机制
2007-09-06 13:21 1817摘要 Reflection 是Java被视 ... -
Jbpm + Spring 配置
2007-08-30 12:01 4545配置问题, 苦! 以前用 spring-modules-0. ...
相关推荐
配置说明见: http://panyongzheng.iteye.com/blog/1872035
4.3.8 Struts和spring的配置 52 4.4 部署和运行 54 4.4.1 启动Demo Human Task Service 54 4.4.2 启动Tomcat 54 4.4.3 运行Demo 55 附录A:MySql安装图解 59 一、MySQL5.1安装 59 二、配置MySQL Server 63
配置Spring相关文件: 42 二、配置Hibernate相关文件: 44 三、整合需要jbpm提供的jar包: 44 17 HelloWorld 45 Xml: 45 Code: 45 18 从数据库中取出xml文件和png图片 48 19 向页面输出图片 49 20 页面显示图片 50 ...
4.2. Knowledge-based API 21 第五章 核心引擎:基础 21 5.1 创建一个流程 21 5.1.1 Eclipse BPMN2.0图形编辑器插件 22 5.1.2 使用XML定义流程 22 5.1.3使用流程API定义流程 24 5.2 不同流程构造的细节概述 25 5.3 ...
4.2. Knowledge-based API 21 第五章 核心引擎:基础 21 5.1 创建一个流程 21 5.1.1 Eclipse BPMN2.0图形编辑器插件 22 5.1.2 使用XML定义流程 22 5.1.3使用流程API定义流程 24 5.2 不同流程构造的细节概述 25 5.3 ...
jBPM4与Spring框架集成 296 18.1 集成的目标 297 18.2 为集成配置jBPM4 297 18.3 为集成配置Spring 299 18.4 使用 301 18.5 测试 302 18.6 小结 302 第19章 jBPM4与JBoss应用服务器集成 303 19.1 流程定义打包部署 ...
4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作原理 157 4.3 从脚本中刷新Bean 160 4.3.1 问题 160 4.3.2 解决方案 160 4.3.3 工作原理 160 4.4 定义内联脚本源码...
4.2. Knowledge-based API 27 第五章 核心引擎:基础 27 5.1 创建一个流程 27 5.1.1 Eclipse BPMN2.0图形编辑器插件 28 5.1.2 使用XML定义流程 28 5.1.3使用流程API定义流程 30 5.2 不同流程构造的细节概述 31 5.3 ...
4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作原理 157 4.3 从脚本中刷新Bean 160 4.3.1 问题 160 4.3.2 解决方案 160 4.3.3 工作原理 160 4.4 定义内联脚本源码...
这个是在整合JBPM前,先集成SpringMVC3.2和Hibernate4.2的代码,并配置了二级缓存。
至于与Spring的集成,一定要熟悉基于Spring配置Activiti,以及事务的处理。 3. 入门示例(参考手册中10分钟教程) 3.1. 概述 下面开始编写一个示例。这个Demo为一个“月度报表申请”流程。由“sales(销售)”组的...
1.4. Seam 和jBPM:待办事项列表(todo list)示例..................................................................................................... 32 1.4.1. 理解代码....................................