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

Java RESTful GET请求无法访问,404错误排查求助

解决你的Jersey REST接口404错误问题

我来帮你排查几个新手用Jersey开发REST服务时常见的问题,应该能解决你的404错误:

1. 先确认Jersey依赖是否齐全

如果你的项目用Maven管理,确保pom.xml里已经引入了Jersey 2.x的核心依赖:

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.35</version> <!-- 建议使用最新稳定版 -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>2.35</version>
    </dependency>
</dependencies>

如果是手动导jar包,要把这些核心jar放到WEB-INF/lib目录下,缺少依赖会导致服务无法正常初始化,接口自然找不到。

2. 修改web.xml的服务类配置方式

你现在在web.xml里指定了单个服务类,这种方式有时候会因为注解扫描不完整导致接口未被注册。换成扫描整个包的方式更可靠:
把原来的init-param替换成:

<init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>com.mycompany.lecture</param-value>
</init-param>

这样Jersey会自动扫描com.mycompany.lecture包下所有带JAX-RS注解的类,确保你的LectureServices被正确识别。

3. 检查编译后的类是否部署到位

确认LectureServices.java编译后的.class文件已经在服务器的WEB-INF/classes/com/mycompany/lecture/目录下,如果class文件没部署上去,服务器找不到服务类肯定返回404。

4. 最后再核对请求路径

你的应用上下文是Lecture,Servlet映射是/app/*,加上类的@Path("/services")和方法的@Path("/sayhello"),请求路径http://localhost:8084/Lecture/app/services/sayhello是完全正确的,所以问题基本出在前面的配置或依赖上。

按照上面的步骤调整后,重启服务器再测试,应该就能正常返回"Hello im here"了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:13:04