Hello! 欢迎来到小浪资源网!


Spring Boot启动报错“缺少ServletWebServerFactory bean”怎么办?


Spring Boot启动报错“缺少ServletWebServerFactory bean”怎么办?

spring boot 项目启动报错:“unable to start servletwebserverapplicationcontext due to missing servletwebserverfactory bean”

问题描述

启动 spring boot 项目时,出现以下错误消息:

org.springframework.context.applicationcontextexception: unable to start servletwebserverapplicationcontext due to missing servletwebserverfactory bean.

问题原因

此错误消息表明 spring boot 应用程序无法启动 servlet web 服务器,因为它找不着 servletwebserverfactory bean。

解决方法

解决此问题的步骤如下:

  1. 移除 spring-boot-starter-tomcat 依赖

pom.xml 文件中包含了 spring-boot-starter-tomcat 依赖,这是不必要的,因为 spring-boot-starter-web 已经包含了 tomcat 依赖。因此,把 spring-boot-starter-tomcat 依赖注释掉。

  1. 调整 starter-web 和 starter-security 依赖版本

把 spring-boot-starter-web 和 spring-boot-starter-security 依赖版本设置为相同版本,如 2.1.3.release。

调整后的 pom.xml 依赖部分如下:

<dependencies>     <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-security</artifactId>         <version>2.1.3.RELEASE</version>     </dependency>     <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</artifactId>         <version>2.1.3.RELEASE</version>     </dependency>     <!-- 移除 spring-boot-starter-tomcat -->     <dependency>         <groupId>io.jsonwebtoken</groupId>         <artifactId>jjwt-api</artifactId>         <version>0.11.2</version>     </dependency>     <!-- 其余依赖保持不变 --> </dependencies>

完成上述调整后,重新启动 spring boot 应用程序,错误应该消失。

相关阅读