【问题标题】:Jersey - The requested resource (Not Found) is not availableJersey - 请求的资源(未找到)不可用
【发布时间】:2014-04-13 17:18:03
【问题描述】:

似乎我尝试的任何设置都无法访问类中的方法。我不断收到 404 未找到。 这是 web.xml 文件:

<servlet>
    <servlet-name>Restful Web Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>restfulexample.status</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Restful Web Service</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

这是 src/main/java 中的 java 文件:

package restfulexample.status;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path("v1/status")
public class V1_status {

@GET
@Produces(MediaType.TEXT_PLAIN)
public String returnTitle(){
    return "Java restful api";
}
}

【问题讨论】:

  • 需要更多信息。您用于访问 Jersey 端点的 URL 是什么?您的 Web 应用程序的名称是什么?您在哪台服务器上部署您的 Web 应用程序?
  • 我正在尝试localhost:8181/RestfulExample/v1/status。在localhost:8181/RestfulExample index.html 上它正在工作。项目名称为 RestfulExample。服务器:Apache Tomcat
  • 你有没有尝试在你的控制器类中添加一些日志来检查它是否被实例化了?顺便说一句,您使用过时的 Jersey 1.XX 有什么特别的原因吗?
  • 检查服务器日志。我也遇到过类似的问题,原因是 Jersey 无法扫描资源

标签: java jersey http-status-code-404


【解决方案1】:

可能是我,但@Path("v1/status") 没有缺少斜线吗?所以基本上@Path("/v1/status").

更新

打我一下:你在 web.xml 中的 url-pattern 缺少一个星号。将其更改为:

<servlet-mapping>
    <servlet-name>Restful Web Service</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

【讨论】:

  • 不,不是那样。 :(
  • 您使用的是哪个版本的泽西岛?在服务器或 Web 应用程序启动期间,您是否在日志中看到任何错误?
  • 我认为您的 servlet 映射中缺少星号。我已经更新了我的答案。
【解决方案2】:

如果路线对了,不知道你是不是把jersey(jersey2.x)的.jar文件全部放到lib文件夹下,因为它们在 jersey-ir/

下分为三个部分

【讨论】:

    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多