Activiti之act_ge_property表引发的坑(dbSchemaUpdate)

Caused by: java.lang.NullPointerException
 at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:1089)
 at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1481)
 at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:27)
 at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)
 at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57)
 at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
 at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
 at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
 at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
 at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
 at org.activiti.engine.impl.ProcessEngineImpl.(ProcessEngineImpl.java:80)
 at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:591)
 at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:65)
 at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:60)
 at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)
 at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
 ... 41 more
 
 
  
    
  
  
  
  
  
     
  
  
     
         
         
     
     
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 


最近给客户部署系统,系统中使用Activiti流程引擎,启动Tomcat死活报错,报错如上边信息。真是一头雾水,刚开始以为是程序自身或者服务器环境问题(因为环境都是新装的),没往流程引擎上想。

上边的异常只是截取的最关键的地方,其实在这之前还要报一片异常,把环境和程序配置检查了一便,还是无果,最终把焦点集中在了org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate,意思是流程表在更新表结构的时候出现异常,怎么会老是更新呢?查看了Activiti的配置,如上图。

 databaseSchemaUpdate设置为true代表如果没有表,则自动创建表;估计是这里的原因,我重新建了一个空的数据库test1,然后程序连上test1数据库,启动tomcat,竟然成功了。成功了,心里的一块石头落了地。

但是还是感觉很奇怪,不知道真正原因是什么,后来才想到,act_ge_property表,该表是流程引擎的属性表,里面的三条数据是基础数据,不可以删除。而我看了一下数据库初始化sql,竟然没有这三条数据,我这才恍然大悟,我准备程序包的时候,为了不把流程里面的数据带过来,我只是导出的表结构,没有导出数据。也就是说还原到服务器数据库的时候,act_ge_property表里面压根没有数据,这就造成了当前这个问题。聪明反被聪明误。。以后引以为戒吧。

总结:部署程序准备数据库初始化sql时,对于流程表,以后就不要导出来,只导出业务表,流程表让系统启动时自己生成去。





你可能感兴趣的:(Activiti)