Spring Boot升级后集成测试失败,报AOP相关异常求助
解决Spring Boot 2.2.5 + OpenJDK13集成测试抛出VerifyError的问题
我最近在升级项目时遇到了完全相同的棘手状况,折腾了好一阵终于找到了解决方案,分享给你:
问题场景
我做了两项核心升级操作:
- 将Spring Boot parent依赖从
2.1.5.RELEASE升级到2.2.5.RELEASE,配置如下:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <!-- 原版本:<version>2.1.5.RELEASE</version> --> </parent> - 同时把底层Java环境从OpenJDK 11升级到OpenJDK 13
升级后项目能正常编译生成Jar包,但所有60+集成测试全部失败,抛出的异常链如下:
Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
追踪根因指向:
java.lang.VerifyError: Stack map does not match the one at exception handle
之前这些测试都是正常运行的,我在Stack Overflow上找到过同类问题但没有现成解决办法,谷歌搜到的相关中文资料也无法正常阅读。我的开发环境是Spring Tools Suite 4.5.1.RELEASE,运行在Linux 5.3.0-40-generic内核上。
最终解决方案
经过多次依赖调整尝试,我通过以下步骤解决了问题:
- 引入
aspectjrt和aspectjweaver依赖,指定版本为1.9.5 - 将
javassist升级至3.26.0-GA - 将
cglib-nodep升级至3.3.0 - 移除项目中的
spring-aop依赖
完成这些调整后,所有集成测试都恢复正常运行了。
内容的提问来源于stack exchange,提问作者Tito
相关产品推荐
相关产品推荐

