autoconfigure/web/ServerPropertiesAutoConfiguration.class] cannot be opened because it does not exis
fixed:ServerPropertiesAutoConfiguration.class] cannot be opened because it does not exis
- 故障现场
- 原因分析
- 解决方案
故障现场
报错原因如下:
Caused by: java.io.FileNotFoundException:
class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class]
cannot be opened because it does not existat org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:199)
报错详情如下:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-03-14 10:25:30.572 ERROR --- o.s.boot.SpringApplication --- org.springframework.boot.SpringApplication:830:
Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.xxx]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class] cannot be opened because it does not existat org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610)at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111)at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:812)at java.util.ArrayList.forEach(ArrayList.java:1257)at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:809)at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:780)at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193)at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415)at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
Caused by: java.io.FileNotFoundException: class path resource [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.class] cannot be opened because it does not existat org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:199)at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:55)at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:49)at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86)at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73)at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:696)at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getRelated(ConfigurationClassParser.java:1090)at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getAnnotationAttributes(ConfigurationClassParser.java:1071)at org.springframework.context.annotation.ConfigurationClassParser.collectImports(ConfigurationClassParser.java:549)at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:522)at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:311)at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:600)... 19 common frames omitted
10:25:30,574 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE_LOG] - Appender [FILE_LOG] failed to append. java.lang.NullPointerExceptionat java.lang.NullPointerExceptionat at ch.qos.logback.core.OutputStreamAppender.writeBytes(OutputStreamAppender.java:199)at at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:231)at at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235)at at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)at at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)at at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)at at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)at at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)at at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)at at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)at at ch.qos.logback.classic.Logger.warn(Logger.java:688)
原因分析
则可能是SpringBoot 版本过高不兼容传递依赖的 spring-cloud-starter-feign 引起的。
spring-cloud-starter-openfeign 是基于spring-cloud-starter-feign 的开源版本, 实现基本一样,spring-cloud-starter-openfeign 引入了一些spring-cloud-starter-feign不具备的功能和特性,是spring-cloud-starter-feign的扩展和增强版本。
spring-cloud-starter-feign 仅支持Spring boot 1.4.7 或更低的SpringBoot版本
解决方案
如果当前项目SpringBoot版本高于1.4.7,或直接或间接引入了spring-cloud-starter-openfeign,则可能需排除spring-cloud-starter-feign ,否则会出现依赖冲突.
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
