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

Eclipse+Tomcat开发Java Web REST API部署后接口访问404问题求助

问题根因与解决方案

根路径可正常访问说明项目部署上下文/queroquero配置无误,404是因为JAX-RS相关注解未被识别、REST服务未被正确加载,可按以下步骤逐一排查修复:

1. 补充JAX-RS实现依赖

你当前仅引入了JAX-RS的接口包,Tomcat作为Servlet容器本身不内置JAX-RS实现,所以无法识别相关REST注解,需要额外引入具体实现(以Jersey为例):

  • 如果你使用的是Tomcat 10及以上版本(Jakarta EE命名空间),在pom.xml新增以下依赖:
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-jakarta</artifactId>
    <version>3.1.5</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.inject</groupId>
    <artifactId>jersey-hk2</artifactId>
    <version>3.1.5</version>
</dependency>
  • 如果你使用的是Tomcat 9及以下版本(Java EE javax命名空间),需先把现有jakarta前缀的依赖全部替换为javax前缀,再新增以下依赖:
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.41</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.inject</groupId>
    <artifactId>jersey-hk2</artifactId>
    <version>2.41</version>
</dependency>

2. 补充REST资源扫描配置

你当前的Main类和web.xml都没有配置资源扫描规则,JAX-RS无法识别到你写的VendedorResource类,可任选以下一种方式配置:

  • 方式一:重写Main类的getClasses方法手动注册资源
@ApplicationPath("rest")
public class Main extends Application{
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<>();
        resources.add(VendedorResource.class);
        return resources;
    }
}
  • 方式二:在web.xml中添加Jersey的Servlet配置和包扫描规则,以Tomcat 10为例:
<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>你的VendedorResource类所在的包名</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

3. 额外校验项

  • 检查Tomcat启动日志,确认没有类找不到、依赖冲突相关报错
  • 清理Tomcat的work、temp目录后重新打包部署,避免旧缓存导致的异常
  • 解压打包好的war包,确认/WEB-INF/lib目录下存在Jersey相关的依赖jar包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:45:08