Spring boot + dubbo 项目启动报错 ClassNotFoundException WebServerFactoryCustomizer

1 背景

代码和包依赖等信息没做任何修改,之前项目启动没问题的,有一天项目在测试环境突然启动报错

了,生产环境可以正常启动。报错信息如下所示。

java 复制代码
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.web.server.WebServerFactoryCustomizer
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

2 原因分析和问题解决

可能原因是该项目部署时加载到的间接依赖包有变化导致的。

通过对比测试环境和生产环境项目的安装包里面加载的依赖包,找到差异。如果测试环境多出了一

些包,则排除测试环境多余的包即可(依次排除多余的包,直到项目正常启动为止)。

具体步骤为:

(1)下载测试环境和生产环境的项目安装包(jar包等);

(2)直接解压安装包,对比 解压文件中"\BOOT-INF\lib" 里的依赖包的差异;

(3)在idea添加 "Maven Helper"插件,通过该插件快速找到测试环境多出的包所在的项目直接依

赖包位置,并在直接依赖包中排除此多出的包。

3 扩展

在项目中引入其他包时,尽量使用 <exclusions> 排除间接依赖其他的包,以免后续出现包冲突或

其他异常问题。

相关推荐
是梦终空8 小时前
计算机源码273—基于SpringBoot+Vue3停车场管理系统带支沙箱支付(源代码+数据库)
数据库·spring boot·vue·mybatis·停车场管理系统·沙箱支付·毕设设计
Filwaod8 小时前
Java面试:AIGC场景下的技术深度拷问-谢飞机篇
spring boot·缓存·微服务·消息队列·aigc·java面试·ai技术
隐退山林9 小时前
JavaEE进阶:SpringBoot配置文件
java·spring boot·java-ee
lwf00616411 小时前
Dubbo vs Feign:微服务RPC框架深度对比
微服务·rpc·dubbo
霸道流氓气质11 小时前
SpringAI+Ollama本地模型实现快速对话入门实例
spring boot·ai
xun-ming12 小时前
SpringBoot和Vue3实战阿里百炼大模型极简版
spring boot·ai·vue3·智能体·百炼大模型
csdn2015_12 小时前
java springboot 文件导入,判断第一列的值是否有重复
java·windows·spring boot
阿丰资源12 小时前
基于Springboot+mysql的在线兼职平台(附源码)
spring boot·后端·mysql
怪祝浙12 小时前
从简单项目入手Java(学生系统)V6(Web版本 Spring Boot3 MySQL Vue3 MyBatis)
java·spring boot·mysql
蜡台13 小时前
Vue + SpringBoot 实现 WebSocket 基于 Sec-WebSocket-Protocol 传参鉴权(避坑指南)
vue.js·spring boot·websocket·sec