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。
解决此问题的步骤如下:
- 移除 spring-boot-starter-tomcat 依赖
pom.xml 文件中包含了 spring-boot-starter-tomcat 依赖,这是不必要的,因为 spring-boot-starter-web 已经包含了 tomcat 依赖。因此,把 spring-boot-starter-tomcat 依赖注释掉。
- 调整 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 应用程序,错误应该消失。