Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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/1/visual-studio-2008/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 Restful Webservice@Pathparam如果为空,则始终给出404错误_Java_Web Services_Glassfish - Fatal编程技术网

Java Restful Webservice@Pathparam如果为空,则始终给出404错误

Java Restful Webservice@Pathparam如果为空,则始终给出404错误,java,web-services,glassfish,Java,Web Services,Glassfish,我遵循这个示例构建我的第一个restful Web服务 **这就是方法 @Path("/users/{id}") @GET @ValidateRequest public Response getUserBId ( @PathParam("id") String id ) throws MyApplicationException { 我正在使用以下软件 Neatbeans 7.4 玻璃鱼4.0 如果我在Id中传递一个值,一切都正常,但如果我不在Id中传递值,我总是以错误404结束

我遵循这个示例构建我的第一个restful Web服务

**这就是方法

@Path("/users/{id}")
@GET
@ValidateRequest
public Response getUserBId  ( @PathParam("id") String id ) throws    MyApplicationException
{
我正在使用以下软件

Neatbeans 7.4 玻璃鱼4.0

如果我在Id中传递一个值,一切都正常,但如果我不在Id中传递值,我总是以错误404结束

GET RequestFailed RequestFailed --> Status: (404) 
Response: {
HTTP Status 404 - Not Found
--------------------------------------------------------------------------------

type Status report

messageNot Found

descriptionThe requested resource is not available.

--------------------------------------------------------------------------------

GlassFish Server Open Source Edition 4.0 
如何捕获它并显示我自己的错误


有谁能帮我一下吗,因为我对这一点很陌生。

如果不指定ID,您将无法调用rest方法-它是URI的一部分:
/users/{ID}


如果您只指定了
/users/
,那么您调用的是不同的rest方法,对此您可能没有实现-这就是为什么会出现错误
404-未找到资源

您已经将端点定义为@Path(“/users/{id}”因此,当您不提供id时,它将返回HTTP 404错误,这意味着@Path(“/users/”不存在,调用甚至不会命中您的Web服务


从这个角度看,如果有人把包裹寄到你的家庭地址,你可以打开它或用它做其他事情,但如果包裹的地址不对,你就得不到包裹,也不能用它做任何事情。:)

嗨,谢谢你的回复,但它在下面的第1段中给了我同样的错误如果有3个参数,如果我将1留空2)即使我试图给出@DefaultValue(“1”)@PathParam(“Id”),@DefaultValue(“2”)@PathParam(“Id2”),我也不知道我错在哪里,你是什么意思?你能解释一下吗?哪种情况?干杯如果您有2个或3个参数,那么这就是不同的URI和不同的web服务。你需要不同的方法,因为这个方法只接受1个参数。如果我使用@DefaultValue(“1”)@PathParam(“Id”),那么它也会给出相同的错误,我是否应该得到这个错误?对不起,我昨天没有看到你的评论,但我想你从FazoMisiekYes那里得到了答案。你和FazoMisiek都解释得很好。我明白了。嗨,谢谢你的解释@Rash和@FazoMisiek,我明白你的意思了。但是如果我们有以下情况
code
1)如果有3个参数,如果我留下一个空的公共响应getUserBId(@PathParam(“id”)字符串id、@PathParam(“id2”)字符串id2、@PathParam(“id3”)字符串id3)2),即使我试图给出@DefaultValue(“1”)@PathParam(“id”)、@DefaultValue(“2”)@PathParam(“id2”)因此,在这种情况下,我们将如何管理这些。目前,我得到了相同的错误,正如我所说的,如果我们给@DefaultValue,那么我们不应该得到错误。