Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 泽西总是返回404_Java_Jersey_Web.xml - Fatal编程技术网

Java 泽西总是返回404

Java 泽西总是返回404,java,jersey,web.xml,Java,Jersey,Web.xml,我已经建立了一个用于实践、学习和测试的项目,代码中没有错误,但无论我如何努力,我都无法在testGet.java中找到URI路径,即GET方法,这是一个测试页面,我总是遇到404错误,我搜索了Google几个小时,但我没有找到答案。我的代码在这里 这是我的web.xml Restful Web应用程序 Restful Web应用程序 com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.prop

我已经建立了一个用于实践、学习和测试的项目,代码中没有错误,但无论我如何努力,我都无法在testGet.java中找到URI路径,即GET方法,这是一个测试页面,我总是遇到404错误,我搜索了Google几个小时,但我没有找到答案。我的代码在这里

这是我的web.xml


Restful Web应用程序
Restful Web应用程序
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
服务
1.
Restful Web应用程序
/webapi/*
这是我的testGET.java

套餐服务;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
@路径(“/test”)
公共类testGet{
@得到
//@路径(“/test”)
@产生({MediaType.APPLICATION_JSON+“charset=utf-8”})
公共字符串Hello()
{
返回“测试”;
}
}
问题:

有人做过相关工作吗? 我做错了什么? 我认为这可能是一个bug,当使用多个@Path时,一个在类中,另一个在方法中。 任何提示都非常感谢


关于

您是否使用
Maven
作为依赖项?如果没有,我会建议你使用它,它会让你的生活更轻松

我们可以指出的一点是,您使用的是
jersey 2.19
。但是,在
web.xml
中,您正在使用


Restful Web应用程序
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
服务
1.
这是from
jersey 1.x
。在jersey 2.x中,它已更改为:


Restful Web应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
服务
1.
然后尝试将
.jar
添加到
WebContent/WEB-INF/lib
(如建议的那样)

但是,您的
testGet.java
应该是正确的(请注意,我将其重命名为
testGet.java
)。 启动服务时,您应该能够通过以下方式访问:
http://host:port/rest/test


希望它能帮助你

正确的URL应该是:

http://{server}:{port}/{context-root}/{servlet-mapping}/{path}
在您的示例中:

  • {server}
    =
    localhost
  • {port}
    =
    8080
  • {context root}
    =
    服务
    ?(通常是war文件的名称)
  • {servlet映射}
    =
    webapi
  • {path}
    =
    测试
因此,它应该是:

http://localhost:8080/service/webapi/test

如果URL不可用,则部署可能失败。检查您的服务器日志(了解war文件的部署时间)。

您使用的哪个URL返回404状态?感谢您的回复。您的web.xml配置不正确。您使用的是Jersey 1.x配置,但您使用的是Jersey 2.x JAR。查看我尝试过的正确配置,它们都不起作用检查服务器日志(在服务器启动时)是否有错误。可能是,应用程序的部署失败。