activiti,activiti5.10学习资料13(DbSqlSession)
activiti5.10集成spring出现DbSqlSession异常信息
activiti-cfg.xml配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 创建一个事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 创建一个流程引擎的配置对象 -->
<bean id="processEngineConfiguration"
class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<!-- 设置数据库schema的更新方式 -->
<property name="databaseSchemaUpdate" value="false" />
<!-- 是否启动jobExecutor -->
<property name="jobExecutorActivate" value="false" />
</bean>
<!-- 创建一个流程引擎bean -->
<bean id="processEngine"
class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<!-- 创建activiti提供的各种服务 -->
<!-- 工作流仓储服务 -->
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
<!-- 工作流运行服务 -->
<bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
<!-- 工作流任务服务 -->
<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" />
<!-- 工作流唯一服务 -->
<bean id="IdentityService" factory-bean="processEngine" factory-method="getIdentityService" />
</beans>
测试代码如下:
package com.gbsoft.activiti.test.bpmn.one;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class OneTest {
/**
* @param args
*/
public static void main(String[] args) {
OneTest test = new OneTest();
// test.one();
test.two();
}
private void one() {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"classpath:conf/app-context.xml");
ProcessEngine processEngine = (ProcessEngine)applicationContext.getBean("processEngine");
// 获取流程资源库
RepositoryService repositoryService = (RepositoryService) applicationContext
.getBean("repositoryService");
RuntimeService runtimeService = (RuntimeService) applicationContext
.getBean("runtimeService");
System.out.println("开始发布流程");
Deployment deployment = repositoryService
.createDeployment()
.addClasspathResource(
"com/gbsoft/activiti/test/bpmn/one/one.bpmn20.xml")
.deploy();
System.out.println("deployment : " + deployment.getId());
// 获取流程实例
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("financialReport");
System.out.println("流程实例:id=" + processInstance.getId());
}
private void two() {
// Create Activiti process engine
ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("com/gbsoft/activiti/conf/activiti.cfg.xml").buildProcessEngine();
// ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration().buildProcessEngine();
// Get Activiti services
RepositoryService repositoryService = processEngine
.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
// Deploy the process definition
repositoryService.createDeployment()
.addClasspathResource("com/gbsoft/activiti/test/bpmn/one/one.bpmn20.xml")
.deploy();
// Start a process instance
runtimeService.startProcessInstanceByKey("financialReport");