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

Spring Boot通过mvn命令可正常运行,IntelliJ启动缺ServletWebServerFactory bean如何解决

问题排查方案

可能原因及对应检查项

  • IDEA启动配置未指定正确运行环境
    命令行启动时你明确指定了dev环境,若IDEA启动配置未添加对应Profile参数,可能触发其他环境的配置逻辑,比如部分项目会在非开发环境排除内置Tomcat依赖,导致找不到ServletWebServerFactory相关Bean。

检查操作:打开IDEA顶部「Run -> Edit Configurations」,找到对应启动类的配置项,在「VM options」输入框中添加和命令行一致的参数:-Dspring.profiles.active=dev -Dserver.port=8083,保存后重新启动测试。

  • IDEA未加载provided作用域的依赖
    如果你的项目pom.xml中spring-boot-starter-tomcat依赖的scope被设为provided,Maven的spring-boot:run插件会默认忽略provided限制加载该依赖,但IDEA默认不会加载provided作用域的依赖,就会出现缺失容器Bean的报错。

检查操作:首先确认pom.xml中内置Tomcat相关依赖的scope属性,如果为provided,可在IDEA启动配置页勾选「Include dependencies with "Provided" scope」选项,重启即可。

  • IDEA本地缓存与依赖不同步
    异常退出、分支切换等场景可能导致IDEA本地缓存、编译结果和实际Maven依赖不一致,触发类加载异常。

检查操作:按顺序执行以下操作后重试:

  1. 点击IDEA右侧Maven面板的刷新按钮,执行「Reload All Maven Projects」同步依赖
  2. 点击顶部「Build -> Rebuild Project」全量重新编译项目
  3. 点击「File -> Invalidate Caches...」清除IDEA缓存后重启软件
  • 启动类配置不匹配
    如果IDEA启动配置中指定的主类不是项目带@SpringBootApplication注解的启动类,或者打war包场景下主类未继承SpringBootServletInitializer,也会触发该报错。

检查操作:确认启动配置中的「Main class」路径和项目实际主启动类路径完全一致,主类的注解没有被误删。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:04