Maven Assembly打Fat Jar运行Spring Boot时Tomcat启动失败(缺失ServletWebServerFactory Bean)
Spring Boot 应用启动异常排查
基础配置确认项
- 应用核心功能为提供Web服务,需监听8080端口
- 主启动类已正确添加
@SpringBootApplication注解 - 项目pom已引入
spring-boot-starter-parent作为统一依赖管理父模块、引入spring-boot-starter-webWeb组件依赖 - 项目pom已显式声明引入
spring-boot-starter-tomcat内嵌Tomcat容器依赖 - 排查材料包含完整业务模块pom配置、继承自
spring-boot-starter-parent的父级pom配置
差异化运行表现
- 在IntelliJ IDEA环境中直接启动应用:可正常完成启动流程,Web服务正常可用
- 使用Maven Assembly插件生成可执行Fat Jar包,通过
java -jar命令执行Jar包时:应用无法正常拉起;必须手动在Spring配置类中新增如下Bean定义,Jar包才能完成正常启动:
@Bean public ServletWebServerFactory servletWebServerFactory() { return new TomcatServletWebServerFactory(); }
核心异常栈描述
应用启动失败,因缺失
ServletWebServerFactoryBean,无法启动ServletWebServerApplicationContext,进而无法初始化内嵌Web服务器。
内容的提问来源于stack exchange,提问作者Prashant Pandey
相关产品推荐
相关产品推荐

