org.springframework.beans.factory.BeanDefinitionStoreException报错

org.springframework.beans.factory.BeanDefinitionStoreException报错


问题:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [E:\idea\springmvc\SpringMVC\out\artifacts\springmvc_03_hellos_annotation_war_exploded\WEB-INF\classes\cn\edu\controller\HelloController.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn’t supported yet: file [E:\idea\springmvc\SpringMVC\out\artifacts\springmvc_03_hellos_annotation_war_exploded\WEB-INF\classes\cn\edu\controller\HelloController.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 59

无法读取候选组件类:文件[E:\ idea \ springmvc \ SpringMVC \ out \ artifacts \ springmvc_03_hellos_annotation_war_exploded \ WEB-INF \ classes \ cn \ edu \ controller \ HelloController.class];嵌套的异常是org.springframework.core.NestedIOException:ASM ClassReader无法解析类文件-可能是由于尚不支持新的Java类文件版本:file [E:\ idea \ springmvc \ SpringMVC \ out \ artifacts \ springmvc_03_hellos_annotation_war_exploded \ WEB-INF \ classes \ cn \ edu \ controller \ HelloController.class];嵌套的异常是java.lang.IllegalArgumentException:不支持的类文件主要版本59

原因:项目工程的jdk版本和spring的jar包不兼容,我的jdk版本是15,spring的jar包是5.1.9。

就是下图这个org.springframework版本的问题
在这里插入图片描述
解决方法: 下载其他版本的spring的jar包,如4.1.3版本的jar包,将4.1.3的jar包加入到dependency中,然后将项目中的lib中关于spring5.1.9的jar包全部删除掉。贴图如下

首先将版本更改为4.1.3,然后刷新maven
在这里插入图片描述
快捷键Ctrl+Alt+Shift+S进入项目结构
将报红的jar包删除,保存
ps:如果没有自动导入4.1.3版本的jar包,则手动导入,在lib处右键添加library files文件,即jar包
在这里插入图片描述
在这里插入图片描述
PS:从红箭头处也可以进入项目结构页面
更改上述操作成功后运行tomcat,终于没有报错了!!!
在这里插入图片描述
解决了问题的小伙伴记得给我点个赞啊,谢谢啦。

猜你喜欢

转载自blog.csdn.net/ITvegetable/article/details/112505120