activiti集成spring异常(DbSqlSession)

来源:互联网 发布:blender软件下载 编辑:程序博客网 时间:2024/05/18 13:25

activiti-cfg.xml配置信息如下:

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd  
  6.                            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  7.                            http://www.springframework.org/schema/tx      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  8.   
  9.     <!-- 创建一个事务管理器 -->  
  10.     <bean id="transactionManager"  
  11.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  12.         <property name="dataSource" ref="dataSource" />  
  13.     </bean>  
  14.   
  15.     <!-- 创建一个流程引擎的配置对象 -->  
  16.     <bean id="processEngineConfiguration"  
  17.         class="org.activiti.spring.SpringProcessEngineConfiguration">  
  18.         <property name="dataSource" ref="dataSource" />  
  19.         <property name="transactionManager" ref="transactionManager" />  
  20.         <!-- 设置数据库schema的更新方式 -->  
  21.         <property name="databaseSchemaUpdate" value="false" />  
  22.         <!-- 是否启动jobExecutor -->  
  23.         <property name="jobExecutorActivate" value="false" />  
  24.     </bean>  
  25.   
  26.     <!-- 创建一个流程引擎bean -->  
  27.     <bean id="processEngine"  
  28.         class="org.activiti.spring.ProcessEngineFactoryBean">  
  29.         <property name="processEngineConfiguration" ref="processEngineConfiguration" />  
  30.     </bean>  
  31.   
  32.     <!-- 创建activiti提供的各种服务 -->  
  33.     <!-- 工作流仓储服务 -->  
  34.     <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />  
  35.     <!-- 工作流运行服务 -->  
  36.     <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />   
  37.     <!-- 工作流任务服务 -->  
  38.     <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />  
  39.     <!-- 工作流历史数据服务 -->  
  40.     <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />  
  41.     <!-- 工作流管理服务 -->  
  42.     <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />  
  43.     <!-- 工作流唯一服务 -->  
  44.     <bean id="IdentityService" factory-bean="processEngine" factory-method="getIdentityService" />   
  45. </beans>  


测试代码如下:

[java] view plaincopy
  1. package com.gbsoft.activiti.test.bpmn.one;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.activiti.engine.ProcessEngine;  
  6. import org.activiti.engine.ProcessEngineConfiguration;  
  7. import org.activiti.engine.RepositoryService;  
  8. import org.activiti.engine.RuntimeService;  
  9. import org.activiti.engine.TaskService;  
  10. import org.activiti.engine.repository.Deployment;  
  11. import org.activiti.engine.runtime.ProcessInstance;  
  12. import org.activiti.engine.task.Task;  
  13. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  14.   
  15. public class OneTest {  
  16.   
  17.     /** 
  18.      * @param args 
  19.      */  
  20.     public static void main(String[] args) {  
  21.         OneTest test = new OneTest();  
  22. //      test.one();  
  23.         test.two();  
  24.   
  25.     }  
  26.   
  27.     private void one() {  
  28.         ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(  
  29.                 "classpath:conf/app-context.xml");  
  30.         ProcessEngine processEngine = (ProcessEngine)applicationContext.getBean("processEngine");  
  31.         // 获取流程资源库  
  32.         RepositoryService repositoryService = (RepositoryService) applicationContext  
  33.                 .getBean("repositoryService");  
  34.   
  35.         RuntimeService runtimeService = (RuntimeService) applicationContext  
  36.                 .getBean("runtimeService");  
  37.         System.out.println("开始发布流程");  
  38.         Deployment deployment = repositoryService  
  39.                 .createDeployment()  
  40.                 .addClasspathResource(  
  41.                         "com/gbsoft/activiti/test/bpmn/one/one.bpmn20.xml")  
  42.                 .deploy();  
  43.         System.out.println("deployment : " + deployment.getId());  
  44.   
  45.         // 获取流程实例  
  46.         ProcessInstance processInstance = runtimeService  
  47.                 .startProcessInstanceByKey("financialReport");  
  48.         System.out.println("流程实例:id=" + processInstance.getId());  
  49.     }  
  50.   
  51.     private void two() {  
  52.   
  53.         // Create Activiti process engine  
  54.         ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("com/gbsoft/activiti/conf/activiti.cfg.xml").buildProcessEngine();  
  55. //      ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration().buildProcessEngine();  
  56.   
  57.         // Get Activiti services  
  58.         RepositoryService repositoryService = processEngine  
  59.                 .getRepositoryService();  
  60.         RuntimeService runtimeService = processEngine.getRuntimeService();  
  61.   
  62.         // Deploy the process definition  
  63.         repositoryService.createDeployment()  
  64.                 .addClasspathResource("com/gbsoft/activiti/test/bpmn/one/one.bpmn20.xml")  
  65.                 .deploy();  
  66.   
  67.         // Start a process instance  
  68.         runtimeService.startProcessInstanceByKey("financialReport");  
  69.           
  70.         System.out.println("测试");  
  71.         TaskService taskService = processEngine.getTaskService();  
  72.            
  73.         // 获取指定用户的任务信息  
  74.         List<Task> tasks = taskService.createTaskQuery().taskCandidateUser("kermit").list();  
  75.         System.out.println("任务个数:" + tasks.size());  
  76.           
  77.         // 通过任务组的名称,获取任务列表  
  78.         List<Task> taskss = taskService.createTaskQuery().taskCandidateGroup("accountancy").list();  
  79.         System.out.println("个数:" + taskss.size());  
  80. //      taskService.claim(arg0, arg1)  
  81.         for(Task ts : taskss){   
  82.             // 声明任务执行人  
  83.             taskService.claim(ts.getId(), "fozzie");  
  84.         }  
  85. //      taskService.claim(task.getId(), "fozzie");  
  86.         // 获取指定人员,对应的任务列表  
  87.         List<Task> oneTaskList = taskService.createTaskQuery().taskAssignee("fozzie").list();  
  88.           
  89.         for(Task one : oneTaskList){  
  90.             System.out.println("任务人:" + one.getAssignee());  
  91.               
  92.             // 执行完成任务  
  93.             taskService.complete(one.getId());   
  94.         }  
  95.           
  96.         // 执行任务完成之后,测试是否存在用户的任务信息  
  97.         List<Task> twoTaskList = taskService.createTaskQuery().taskAssignee("fozzie").list();  
  98.         System.out.println("在没有执行之前的任务个数:" + oneTaskList.size());  
  99.         System.out.println("测试用户现在的任务个数:" + twoTaskList.size());  
  100.     }  
  101. }  


出现异常信息如下:


十月 13, 2012 2:33:04 下午 net.sf.ehcache.config.ConfigurationFactory parseConfiguration
警告: No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: jar:file:/G:/project/.metadata/.plugins/org.eclipse.wst.server.core/tmp3/wtpwebapps/gbsoft/WEB-INF/lib/ehcache-1.6.2.jar!/ehcache-failsafe.xml
十月 13, 2012 2:33:05 下午 org.activiti.engine.impl.interceptor.CommandContext close
严重: Error while closing command context
java.lang.NullPointerException
at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:653)
at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:912)
at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:25)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:77)
at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:304)
at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:60)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:56)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:353)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at com.gbsoft.core.web.listener.StartupListener.contextInitialized(StartupListener.java:24)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)


十月 13, 2012 2:33:05 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class com.gbsoft.core.web.listener.StartupListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:353)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at com.gbsoft.core.web.listener.StartupListener.contextInitialized(StartupListener.java:24)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:653)
at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:912)
at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:25)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:77)
at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:304)
at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:60)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:56)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 28 more


[gbsoft] 2012-10-13 14:33:05 ERROR [Thread-2] ContextLoader.initWebApplicationContext(308) | Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:353)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at com.gbsoft.core.web.listener.StartupListener.contextInitialized(StartupListener.java:24)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:653)
at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:912)
at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:25)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:77)
at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:304)
at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:60)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:56)
at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)

... 28 more


最后,删除所有的activiti表,就解决问题啦。我是因为清空了ACT_GE_PROPERTY这个表的数据。

0 0
原创粉丝点击