一、问题详情
springboot项目在启动时,报错:
Application startup failed java.lang.NoClassDefFoundError: org/springframework/boot/web/server/WebServerFactoryCustomizer
二、解决思路
当时看到这个报错的第一反应是,在springboot启动时找错了依赖包,导致加载不到class,所以怀疑项目里springboot版本是不是引乱了,然后一直在找spring-boot-autoconfigure相关的jar,发现下图:
看到项目中这个autoconfigure确实存在两个版本,碰巧查阅到的资料上显示WebServerFactoryCustomizer这个类是2.x版本才存在,然后开始在项目的pom文件中排除依赖
经过半天的排除依赖工作和不停的测试启动,发现确实没啥卵用。
三、最终解决方案
于是找到之前的回退版本下载完整包,比较成功包和失败包之间的差异,
发现差距有上图中很多jar包,应该就是多出了这么多的jar包引起的问题,因为和启动流程有关,本能的怀疑带boot-starter相关的jar包;
然后利用idea的maven分析插件看到依赖于这个jar包;
最后在pom中把它排除掉
<dependency>
<groupId>com.yyw.ledao.platform</groupId>
<artifactId>ledao-user-client</artifactId>
<version>1.1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>arch-upload-boot-starter</artifactId>
<groupId>com.gangling.middleware</groupId>
</exclusion>
</exclusions>
</dependency>
最后项目启动成功。
事实证明耗时间解决不了的问题,只能说明路走错了,哈哈。
---------------------------------完结撒花------------------------------------------------