Java Restful Webservice@Pathparam如果为空,则始终给出404错误
我遵循这个示例构建我的第一个restful Web服务 **这就是方法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结束
@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,那么我们不应该得到错误。