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

Tomcat 10.0.27与IntelliJ 2022.2.2新建Java项目遇HTTP 404问题

问题分析与解决办法

核心原因

Tomcat 10.0.x是Jakarta EE 9/9.1规范的实现,它彻底切换到了jakarta.*命名空间,完全不支持Java EE 8使用的javax.*命名空间。你选Java EE 8生成的项目,Servlet类依赖的是javax.servlet.*包,Tomcat 10识别不了这些类,自然找不到对应的资源,返回404错误。

可行解决方案

方案1:换用兼容的Tomcat版本

如果必须在Java EE 8环境下工作,直接把应用服务器换成Tomcat 9.x——Tomcat 9是专门适配Java EE 8的容器,支持javax.*命名空间,和你的项目依赖完全匹配,不用改任何代码就能正常运行。

方案2:手动适配Tomcat 10(不推荐)

要是非得保留Tomcat 10,就得手动调整项目的依赖和代码:

  • 修改Maven的pom.xml,把javax.servlet相关依赖换成jakarta.servlet的桥接包,比如:
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>4.0.4</version>
        <scope>provided</scope>
    </dependency>
    
  • 把代码里所有import javax.servlet.*的语句,全换成import jakarta.servlet.*
  • 重新构建并部署项目

补充说明

这不是IntelliJ或者Tomcat的Bug,是版本兼容问题:IntelliJ只是按你选的Java EE 8规范生成了对应命名空间的代码,而Tomcat 10的版本特性决定了它只认jakarta.*的类。你切换到Jakarta EE 9能正常运行,就是因为Jakarta EE 9用的是jakarta.*命名空间,和Tomcat 10完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:15:46