意外的AOP异常;嵌套异常为java.lang.IollegalStateException:无法加载缓存项



Spring引导应用程序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:堆栈映射与异常句柄处的映射不匹配,但也没有答案。

我在谷歌上唯一能找到的关于类似异常签名的东西就是那两页(问题是我不懂中文(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 tools Suite版本:4.5.1.RELEASE Build Id:202001211336进行开发,如果这在某种程度上有用,并且jar文件在Linux 5.3.0-40通用内核上运行的话。

任何关于如何进一步调试的想法或提示都将不胜感激。

更新10.03.2020:以下是在Keith和Kriegaex的帮助下工作的解决方案:

我添加了工件aspectjrt和aspectjweaver及其相应的1.9.5版本。然后,我将工件的版本javassist升级到3.26.0-GA,将cglib-nodep升级到3.3.0,并删除了工件spring-aop。在那之后,所有的测试都重新开始了。

在我的案例中,它的版本问题,spring-aop依赖中的spring-core版本与我声明的spring-core依赖不同,使用相同的版本修复了问题

在我的案例中,我有重复的spring-core依赖项。我删除了一个,我的应用程序开始工作。我还注意到了javaassist依赖项的不兼容版本的问题。

我遇到了这个问题,在我的案例中,问题是spring-core的版本冲突。我的服务依赖于另一个服务,而那个(核心(服务已将spring-core声明为依赖项。当我开始在我的应用程序中使用spring-jdbc时,它开始抛出这个异常。解决方案是将spring-core、spring-beans、spring-jcl和spring-tx从我的pom.xml中的spring-jdbc中排除。我还将我的应用程序中的springjdbc版本更改为与核心应用程序(我的应用所依赖的应用程序(中的spring版本相同。

这看起来像https://github.com/eclipse/openj9/issues/5676其应当固定在jdk13中。

您正在使用哪个特定版本的jdk13("java-version"是怎么说的(?

最新更新