Restful Webservice @Pathparam如果为空则总是给出404错误

时间:2013-12-10 15:44:10

标签: java web-services glassfish

我正在按照这个例子来构建我的第一个宁静的web服务

http://howtodoinjava.com/2013/06/03/exception-handling-in-jax-rs-resteasy-with-exceptionmapper/

**这是方法

@Path("/users/{id}")
@GET
@ValidateRequest
public Response getUserBId  ( @PathParam("id") String id ) throws    MyApplicationException
{

我正在使用以下软件

Neatbeans 7.4 Glassfish 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 

如何捕获它并显示我自己的错误。

任何人都可以帮助我,因为我对此很陌生。

2 个答案:

答案 0 :(得分:0)

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

如果你只指定/users/,那么你正在调用不同的rest方法,你可能没有实现 - 这就是你得到错误404 - resource not found的原因。

答案 1 :(得分:0)

您已将端点定义为@Path(“/ users / {id}”,因此当您未提供ID时,它将返回HTTP 404错误,意味着@Path(“/ users /”不存在且调用甚至不会打你的网络服务。

通过这种方式来看,如果有人向您发送包裹到您的家庭住址,您可以打开它或用它做其他事情,但如果包裹有错误的地址您将无法获得包裹而您不能用它做任何事情。 :)