本地启动0.3.2版本chaosblade-box-web时因MyBatis空指针导致启动失败
chaosblade-box-web 0.3.2版本启动异常记录
基础环境与执行命令
- 前置准备:本地已部署MySQL服务,提前创建完成名称为
chaosblade的数据库Schema - 后台驻留启动执行的命令如下:
nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-web-0.3.2.jar --spring.datasource.url=jdbc:mysql://localhost:3306/chaosblade --spring.datasource.username=chaosblade--spring.datasource.password=xxxx> chaosblade-box.log 2>&1 &
启动过程核心报错链路
- 启动初始阶段:日志显示应用运行主机为
CharliedeMacBook-Pro.local,未激活任何自定义Spring Profile,默认加载default配置;过程中触发MyBatis扫描告警:未在com.alibaba.chaosblade.box.web包路径下发现Mapper接口 - 常规初始化阶段:MyBatis-Plus相关配置组件、数据源相关Bean依次完成初始化,内嵌Tomcat服务完成8080端口的监听配置,Spring Web应用上下文完成基础组件加载
- 上下文刷新阶段:触发依赖注入链路异常,报错沿调用栈逐层向上抛出:
experimentController无法注入依赖的experimentService,experimentServiceImpl无法注入依赖的sceneService;最终根因定位为sceneCategoryLoader初始化方法执行失败,触发MyBatis层面运行时异常:对OGNL表达式ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfWhere求值时,抛出Cannot invoke "Object.hashCode()" because "key" is null空指针错误 - 异常收尾阶段:系统自动执行资源清理流程,依次完成HikariCP数据源关闭、Tomcat服务停止,最终Spring应用启动失败,完整堆栈日志留存于运行生成的
chaosblade-box.log中
内容的提问来源于stack exchange,提问作者xgyeqingshan
相关产品推荐
相关产品推荐

