You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.4.1未指定Jetty依赖却尝试初始化Jetty服务器报错如何解决

问题触发原因
  • 类路径存在不完整Jetty依赖:Spring Boot 中 Jetty 相关定制器的自动配置触发条件为类路径存在org.eclipse.jetty.server.Server类,若第三方依赖传递引入了部分 Jetty 组件但未引入完整依赖栈,会触发自动配置逻辑,初始化jettyWebServerFactoryCustomizer时缺少必要类抛出异常。
  • Spring Boot 依赖版本不一致:当前配置中spring-boot-starter-actuator显式指定了版本,若该版本和项目父pom声明的Spring Boot 主版本不匹配,会导致自动配置逻辑异常,错误加载Jetty相关Bean。
  • 显式指定了Jetty服务器类型:若项目配置文件中设置了server.type=jetty等指定使用Jetty的配置,也会触发Jetty相关Bean的加载流程。
解决方案
  • 排查并排除不完整Jetty依赖:执行mvn dependency:tree命令搜索Jetty相关依赖,找到传递引入Jetty的第三方依赖后,添加排除规则:
<dependency>
    <groupId>第三方依赖groupId</groupId>
    <artifactId>第三方依赖artifactId</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 统一Spring Boot依赖版本:移除spring-boot-starter-actuator的显式version配置,所有Starter版本由父pom统一管理,避免版本冲突导致的自动配置异常。
  • 强制指定使用Tomcat服务器:可以通过配置显式禁用Jetty自动配置或指定服务器类型:
    1. 配置文件添加配置:
    spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$JettyWebServerFactoryCustomizerConfiguration
    server.type=tomcat
    
    1. 也可以在pom中显式引入Tomcat Starter确保优先级:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    

内容的提问来源于stack exchange,提问作者Akhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 16:42:01