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

Java Spring部署Tomcat9报Failed to instantiate WebApplicationInitializer错如何解决

问题解决方法

1. 修复Spring版本冲突(最高概率根因)

你当前使用的Spring Boot 1.5.2.RELEASE原生适配的Spring框架版本为4.3.7.RELEASE,但是pom中单独指定了spring-web版本为5.3.12,跨大版本的依赖冲突会直接导致WebApplicationInitializer相关类初始化失败。

  • 解决方法:删除手动添加的如下spring-web依赖声明,由Spring Boot父依赖统一管理版本即可:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.12</version>
</dependency>

2. 补全外置Tomcat部署的必要配置

Spring Boot默认打jar包用内置Tomcat运行,要打war包部署到外置Tomcat需要额外完成两个配置:

  • 第一步:排除spring-boot-starter-web中内置的Tomcat依赖,避免和外置Tomcat的类冲突:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 新增排除配置 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 第二步:新增Servlet初始化类,在你的Spring Boot主启动类同级目录下,新增类继承SpringBootServletInitializer,重写configure方法:
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        // 此处替换为你自己的Spring Boot主启动类类名
        return application.sources(YourMainApplication.class);
    }
}

3. 清理异常依赖配置

你pom中存在多个不合理的依赖声明,可能导致类加载冲突,需要逐一修正:

  • 重复引入了两次jstl依赖,删除任意一个即可
  • 重复引入了三个不同版本的commons-io依赖,保留一个生产环境需要的版本,其余全部删除
  • spring-session-data-redis依赖错误配置了<type>pom</type>,删除该行配置,否则不会引入实际的依赖jar包,会触发类缺失异常

4. 检查自定义实现类的合法性

如果你手动实现了WebApplicationInitializer接口,需要确认:

  • 实现类为public修饰,且包含无参构造方法
  • 实现类未被标记为抽象类
  • 实现类所在包路径在Spring的组件扫描范围内

5. 验证环境版本兼容性

你pom中指定的java.version为1.8,需要确认运行Tomcat 9的JDK版本为1.8及以上,且编译打包用的JDK版本和运行版本完全一致,避免字节码版本不兼容导致类初始化失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:03