前言
今天有同事找我说之前有个项目不知道为什么启动不起来了,说有个类找不到,我看一下是这样的:

org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration,这个类说是找不到
解决过程
很明显这个类属于SpringBoot自身,然后我找了一个对应的jar包:


spring-boot-autoconfigure中真的没有对应的这个类,然后我百度搜了一下,确实能搜到

在这个类的OVERVIEW中可以看到,这是SpringBoot1.x才有的类,到2.x后这个类已经不存在了,肯定是有个引用的版本过低,导致调用了SpringBoot以前的类的,进而导致报错。
问题解决
解决方法其实很简单,也很简单粗暴,将项目的日志等级从INFO改为DEBUG等级,
![]()
通过DEBUG级别的日志发现加载到cxf.xml后项目就报错了,然后怀疑的重点就指向了cxf这个pom包
我尝试将这个jar包升级到3.5.2后发现项目正常启动了,问题得到解决。
问题原因
通过查找cxf的pom文件发现这个3.1.11版本的cxf使用的是1.4.4版本的SpringBoot,也就是因为这个,导致项目无法启动
本文记录了一次解决SpringBoot项目因依赖版本过低导致的启动失败问题。当项目报找不到`org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration`类的错误时,通过检查发现该类在SpringBoot2.x中已被移除。通过将日志级别调整为DEBUG,定位到问题与cxf.xml配置文件有关。升级cxf依赖到3.5.2版本后,项目成功启动。问题的根本原因在于cxf旧版本依赖了SpringBoot1.x,导致冲突。
6522

被折叠的 条评论
为什么被折叠?



