【工作流的微服务启动出现空指针问题】
工作流的微服务启动出现空指针问题
出现的问题如下:
Caused by: java.lang.NullPointerException: nullat org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:1054) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1501) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:28) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:37) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:78) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:57) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:42) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:48) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:63) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:29) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:68) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:858) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:66) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:57) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]... 60 common frames omitted
首先这个问题出现的原因在:DbSqlSession.java:1054位置,排查代码:
经过排查发现,这部分和databaseSchemaUpdate变量有关,然后查找databaseSchemaUpdate变量的定义:String databaseSchemaUpdate = Context.getProcessEngineConfiguration().getDatabaseSchemaUpdate();
这里我发现初始变量是false
但是在配置文件的对象中默认的使用是true
这里我们可以在配置文件中重新进行配置
重新启动之后异常变成了:
Caused by: org.activiti.engine.ActivitiWrongDbException: version mismatch: activiti library version is '7.0.0.0', db version is null Hint: Set <property name="databaseSchemaUpdate" to value="true" or value="create-drop" (use create-drop for testing only!) in bean processEngineConfiguration in activiti.cfg.xml for automatic schema creationat org.activiti.engine.impl.db.DbSqlSession.dbSchemaCheckVersion(DbSqlSession.java:942) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1499) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:28) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:37) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:78) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:57) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:42) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:48) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:63) ~[activiti-engine-7.0.0.Beta3.jar:na]at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47) ~[activiti-spring-7.0.0.Beta3.jar:na]at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45) ~[activiti-spring-7.0.0.Beta3.jar:na]
这个是由于数据库内的版本跟实际的版本不匹配导致的(ACT_GE_PROPERTY表),我这是由于导数据的时候该表数据部分未导入成功,导致一直报改错误,我的pom.xml中的activiti 版本为xxx,而是数据表ACT_GE_PROPERTY中为null,这个问题可以在百度中找到。
总结:
出现上述问题,首先在工作流中的databaseSchemaUpdate你要了解,实际上如果你导库的时候出现异常,我们可以删除数据库中的表,然后重新生成,这样启动就不会报错了。
【工作流的微服务启动出现空指针问题】相关推荐
- 微服务启动成功无法注册到服务注册中心
问题描述 微服务启动成功,没有报错,但是无法注册到服务注册中心.之前写过一个微服务是能注册成功的.把依赖包括版本号全部对照了一遍,发现没有问题. 查找了很多资料,没有找到解决办法.后来尝试在入口cla ...
- 微服务启动failed and no fallback available
spring微服务启动报错 com.netflix.hystrix.exception.HystrixRuntimeException: DesignElementRemoteApiClient#fi ...
- nacos动态路由配置(二)-微服务启动自动配置网关路由
经过上一篇我们发现nacos通过配置动态路由routes-api-gateway.yaml配置json,监听动态路由变化即可实现动态路由,非常的银杏化. 那么有的小伙伴发现配置json也比较麻烦,有没 ...
- springcloud不使用数据库微服务启动异常解决
项目在文件处理微服务不使用数据库时,项目启动异常. 解决办法如下:
- 微服务启动顺序_基于华为云CSE微服务接口兼容常见问题
微服务接口兼容常见问题 在进行微服务持续迭代开发的过程中,由于新特性在不停的加入,一些过时的特性在不停的修改,接口兼容问题面临巨大的挑战,特别是在运行环境多版本共存(灰度发布)的情况下.本章节主要描述 ...
- 微服务启动顺序_微服务框架Demo.MicroServer运行手册
一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...
- 微服务启动报错命令行太长解决方案
Error running 'XXXXX': Command line is too long. Shorten command line for OrderServiceApplication or ...
- 微服务启动报错:Shutting down DiscoveryClient
解决方案:在client项目中添加依赖: <!-- SpringBoot整合Web组件 --><dependency><groupId>org.springfram ...
- 微服务启动读取jar包失败:java: 读取D:\repository\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar时出错; erro
错误信息: java: 读取D:\repository\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar时出错; error in ope ...
最新文章
- 非常有用的css使用总结
- 创建consumer服务
- 外向或内向是基因决定的?
- mysql 组合查询_MySQL组合查询教程
- 2018年90后薪资报告出炉:你在哪个级别???
- servlet ---- 响应对象
- Javascript脚本 : eval()函数
- Linux装gcc经过
- 本人为巨杉数据库(开源NoSQL)写的C#驱动,支持Linq,全部开源,已提交github
- 微信公众号H5支付遇到的那些坑
- 利用Docker快速部署Oracle环境
- (转)遇到重复的Maven项目初始配置,就要创建自己的Maven Archetype
- msm8937+android7.1.1显示驱动解决显示残影问题
- 40Gbit和100Gbit的网络可视性解决方案
- word 尾注 脚注_如何在Microsoft Word中使用脚注和尾注
- 记项目现场的翻车事故
- 巴比特 | 元宇宙每日必读:入职三个月就遭遣散,热潮过后的元宇宙会走向哪里?...
- vue的props父向子传值
- 解读 | 数据分析领域七大热门职业
- 液晶显示器点屏方法步骤及参数表
热门文章
- 我也谈谈日新网社区运营的一些东西
- JS中有没有简单的判断数组是否为空的方法
- Android 字体没效果,AndroidX 自定义字体不生效
- Revit二次开发01——环境搭建(附Revit 2018 + Visual Studio 2017下载地址)
- Notepad++Plugin NPP_Export插件
- GAMES101-现代计算机图形学入门-闫令琪 - lecture13 光线追踪1(Ray Tracing 1 - Whitted-Style Ray Tracing) - 课后笔记
- 安装正版微软官方win10简单方法
- 计算机硬件性能检测报告,硬件性能实际测试结果_平板电脑评测-中关村在线
- XiaomiRouter自学之路(01-项目背景)
- 关系数据模型与关系运算(一)