org.springframework.beans.factory.BeanDefinitionStoreException报错

  • Post author:
  • Post category:其他

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,终于没有报错了!!!
在这里插入图片描述
解决了问题的小伙伴记得给我点个赞啊,谢谢啦。


版权声明:本文为ITvegetable原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。