Spring boot应用程序版本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也已从版本11升级到13,即“
openjdk 11 2018-09-25
openjdk版本“13”2019-09-17
购买升级后,我注意到我的集成测试(> 60)都不起作用。我能够从我的项目中编译 jar 文件,但没有一个测试成功。它们都显示出下面提到的相同异常。有趣的是,这些测试在更改之前是有效的。我注意到 Stackoveflow 上有一个更确切的问题,即 java.lang.VerifyError: Stack map does not match the one at exception handle但也没有答案。
我在谷歌上找到的关于类似异常签名的唯一内容是那两个页面(不幸的是我看不懂中文) https://gitmemory.com/issue/eclipse/openj9/5676/489772592 和 https://blog.csdn.net/Zhao_yanpeng/article/details/102835149
在上一篇文章中,有人提到它正在与 openjdk“12.0.1”一起使用,但我当前正在运行版本 13,但我仍然遇到该异常。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepositoryImpl' defined in file [Projects/server/target/classes/org/server/Repository/account/user/impl/UserRepositoryImpl.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 121 more
Caused by: org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:214)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:471)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:350)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
... 130 more
Caused by: java.lang.IllegalStateException: Unable to load cache item
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:569)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:416)
at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
... 137 more
Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 9
Exception Details:
Location:
org/server/Repository/account/user/impl/UserRepositoryImpl$$EnhancerBySpringCGLIB$$f765df37.<init>()V @9: athrow
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @0
flags: { flagThisUninit }
locals: { uninitializedThis }
stack: { 'java/lang/RuntimeException' }
Stackmap Frame:
bci: @9
flags: { }
locals: { }
stack: { 'java/lang/Throwable' }
Bytecode:
0000000: 2a59 b702 8bb8 0192 b1bf bb01 9c5a 5fb7
0000010: 019f bf
Exception Handler Table:
bci [0, 9] => handler: 9
bci [0, 9] => handler: 9
bci [0, 9] => handler: 10
Stackmap Table:
full_frame(@9,{},{Object[#390]})
same_locals_1_stack_item_frame(@10,Object[#390])
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:571)
at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:582)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108)
at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
... 144 more
我正在使用 Spring 工具套件版本:4.5.1.RELEASE 内部版本号:202001211336 进行开发(如果这在某种程度上有用并且 jar 文件在 Linux 5.3.0-40-generic 内核上运行)。
非常感谢任何如何进一步调试的想法或提示。
2020 年 3 月 10 日更新:以下是在 Keith 和 Kriegaex 的帮助下有效的解决方案:
我添加了工件spectjrt和aspectjweaver及其相应的版本1.9.5。然后我将工件 javassist 的版本升级到 3.26.0-GA,将 cglib-nodep 升级到 3.3.0,并删除工件 spring-aop。之后所有测试都恢复正常。
最佳答案
在我的例子中,它的版本问题,spring-aop依赖中的spring-core版本与我声明的spring-core依赖不同,使用相同的版本修复了问题
关于java - 意外的AOP异常;嵌套异常是 java.lang.IllegalStateException : Unable to load cache item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60601994/