程序启动报错org.springframework.context.ApplicationContextException: Unable to start web server
作者:mmseoamin日期:2023-12-25

目录

    • 一、场景
    • 二、报错信息
    • 三、原因
    • 四、解决

      一、场景

      1、该项目在Linux和本机电脑上启动都正常

      2、在另一台电脑上启动就报错

      3、代码都是同一份,没有差别


      二、报错信息

      org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:157)
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
      	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
      	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
      	at com.xxx.RobotManagerSvr.main(RobotManagerSvr.java:32)
      Caused by: org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getWebServerFactory(ServletWebServerApplicationContext.java:206)
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180)
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:154)
      	... 8 common frames omitted
      

      三、原因

      导入spring-boot-starter-tomcat依赖时定义的scope导致

      原依赖导入配置

      
      	org.springframework.boot
      	spring-boot-starter-tomcat
          
      	provided
      
      

      四、解决

      调整后依赖导入配置

      
      	org.springframework.boot
      	spring-boot-starter-tomcat
          
      	
      
      

      注:本机就算是provided也能正常启动,另一台电脑上就不行,应该是运行环境上的差异