如何解决无法读取候选组件类异常

问题描述

我在eclipse 2021 03中运行spring web项目,出现以下错误

org.springframework.beans.factory.BeanDeFinitionStoreException: Failed to read candidate component class: file [C:\Users\Rangachary\eclipse-newworkspace\.Metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\web-customer-tracker\WEB-INF\classes\com\luv2code\springdemo\controller\CustomerController.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 [C:\Users\Rangachary\eclipse-newworkspace\.Metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\web-customer-tracker\WEB-INF\classes\com\luv2code\springdemo\controller\CustomerController.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 58
    at org.springframework.context.annotation.ClasspathScanningCandidateComponentProvider.scanCandidateComponents(ClasspathScanningCandidateComponentProvider.java:454)
    at org.springframework.context.annotation.ClasspathScanningCandidateComponentProvider.findCandidateComponents(ClasspathScanningCandidateComponentProvider.java:316)
    at org.springframework.context.annotation.ClasspathBeanDeFinitionScanner.doScan(ClasspathBeanDeFinitionScanner.java:275)
    at org.springframework.context.annotation.ComponentScanBeanDeFinitionParser.parse(ComponentScanBeanDeFinitionParser.java:90)
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
    at org.springframework.beans.factory.xml.BeanDeFinitionParserDelegate.parseCustomElement(BeanDeFinitionParserDelegate.java:1366)
    at org.springframework.beans.factory.xml.BeanDeFinitionParserDelegate.parseCustomElement(BeanDeFinitionParserDelegate.java:1352)
    at org.springframework.beans.factory.xml.DefaultBeanDeFinitionDocumentReader.parseBeanDeFinitions(DefaultBeanDeFinitionDocumentReader.java:179)
    at org.springframework.beans.factory.xml.DefaultBeanDeFinitionDocumentReader.doRegisterBeanDeFinitions(DefaultBeanDeFinitionDocumentReader.java:149)
    at org.springframework.beans.factory.xml.DefaultBeanDeFinitionDocumentReader.registerBeanDeFinitions(DefaultBeanDeFinitionDocumentReader.java:96)
    at org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.registerBeanDeFinitions(XmlBeanDeFinitionReader.java:513)
    at org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.doLoadBeanDeFinitions(XmlBeanDeFinitionReader.java:393)
    at org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.loadBeanDeFinitions(XmlBeanDeFinitionReader.java:336)
    at org.springframework.beans.factory.xml.XmlBeanDeFinitionReader.loadBeanDeFinitions(XmlBeanDeFinitionReader.java:304)
    at org.springframework.beans.factory.support.AbstractBeanDeFinitionReader.loadBeanDeFinitions(AbstractBeanDeFinitionReader.java:188)
    at org.springframework.beans.factory.support.AbstractBeanDeFinitionReader.loadBeanDeFinitions(AbstractBeanDeFinitionReader.java:224)
    at org.springframework.beans.factory.support.AbstractBeanDeFinitionReader.loadBeanDeFinitions(AbstractBeanDeFinitionReader.java:195)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDeFinitions(XmlWebApplicationContext.java:125)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDeFinitions(XmlWebApplicationContext.java:94)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshbeanfactory(AbstractRefreshableApplicationContext.java:133)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshbeanfactory(AbstractApplicationContext.java:636)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:521)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:701)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:667)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:715)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:590)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:529)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1134)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1089)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
    at org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: 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 [C:\Users\Rangachary\eclipse-newworkspace\.Metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\web-customer-tracker\WEB-INF\classes\com\luv2code\springdemo\controller\CustomerController.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 58
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:57)
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:123)
    at org.springframework.context.annotation.ClasspathScanningCandidateComponentProvider.scanCandidateComponents(ClasspathScanningCandidateComponentProvider.java:430)
    ... 48 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58
    at org.springframework.asm.ClassReader.<init>(ClassReader.java:184)
    at org.springframework.asm.ClassReader.<init>(ClassReader.java:166)
    at org.springframework.asm.ClassReader.<init>(ClassReader.java:152)
    at org.springframework.asm.ClassReader.<init>(ClassReader.java:273)
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:54)
    ... 51 more

我已经使用 jdk 14 编译了这个类

使用的 jre 与 jdk 14 兼容 eclipse 中的编译器设置和 jre 设置的属性和首选项设置为 jdk 14 和 jre 14 使用的 Spring jars 是 5.1.5 版本,我没有使用 maven 仍然得到同样的错误 我还应该调整什么?摆脱这个错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)