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

从Tomcat7/Jersey2.25/Servlet2.5升级到Tomcat10/Jersey3.0.8/Servlet5遇404错误

排查Tomcat10 + Jersey3.0.8 404问题的核心步骤

1. 彻底切换到Jakarta命名空间依赖

Tomcat10和Jersey3.x均基于Jakarta EE规范,必须完全替换原javax.*相关依赖:

  • 移除所有javax.servlet、javax.ws.rs开头的旧依赖
  • 确保Jersey依赖使用3.0.8的Jakarta版本,示例Maven依赖:
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-jakarta</artifactId>
        <version>3.0.8</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>3.0.8</version>
    </dependency>
    
  • 全局替换代码中的import:把所有javax.ws.rs.*改为jakarta.ws.rs.*,包括@ApplicationPath、@Path、@GET等核心注解

2. 修正web.xml的Schema配置

Tomcat10要求web.xml使用Jakarta官方Schema,替换原Java EE的命名空间:

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

若使用Servlet方式配置Jersey,需指定Jakarta版本的容器类:

<servlet>
    <servlet-name>Jersey Servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jakarta.ws.rs.Application</param-name>
        <param-value>com.yourpackage.AppConfig</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Servlet</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

3. 规范@ApplicationPath的使用

  • 避免使用/*(这是Servlet映射语法),仅需指定路径前缀,比如@ApplicationPath("/api"),资源访问路径为/api/[资源类@Path值]
  • 若设为@ApplicationPath("/"),需确保Tomcat默认ROOT应用未抢占路径,且无其他Servlet映射冲突

4. 验证资源类注解有效性

  • 资源类必须添加@Path注解(如@Path("/connect"))
  • 接口方法需正确标注@GET/@POST等请求方法注解
  • 再次确认所有注解均来自jakarta.ws.rs包

5. 通过Tomcat日志定位根因

  • 查看localhost.log,排查Jersey初始化时的报错(如资源类扫描失败、注解处理异常)
  • 查看localhost_access_log.*,确认请求是否真的到达Jersey容器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:05:24