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

升级Java17与Tomcat10.1后REST API出现404及类找不到异常

升级Java 17和Tomcat 10.1后REST API调用报错的解决方法

问题原因

这个错误的核心是Tomcat 10.1基于Jakarta EE 9+规范,该规范已将所有javax.servlet相关API包迁移至jakarta.servlet命名空间,而你的项目仍在引用旧的javax.servlet.Filter类,导致类加载失败。Servlet初始化失败后,后续所有请求自然返回404。

解决步骤

  • 替换项目依赖:将所有javax.servlet相关依赖(如servlet-api、jsp-api等)替换为Jakarta版本。以Maven为例:
    <!-- 移除旧的javax.servlet依赖 -->
    <!-- <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency> -->
    
    <!-- 引入Jakarta版本依赖 -->
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>6.0.0</version>
        <scope>provided</scope>
    </dependency>
    
  • 修改代码导入语句:将所有代码中的import javax.servlet.*、import javax.servlet.http.*等,替换为import jakarta.servlet.*、import jakarta.servlet.http.*。
  • 检查配置文件:若项目使用web.xml,确保其中过滤器、Servlet的类路径已更新;优先推荐使用注解式配置替代传统XML配置。
  • 清理重构项目:删除旧编译文件(如target目录),重新编译打包,确保所有依赖和代码完成命名空间切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:50:01