与Jersey REST的PathParam

时间:2012-06-24 21:59:29

标签: java rest jersey

我正在开发一个REST Web服务,我在URL中使用ID来指定患者,如下所示:

  

WS/services/patient/1

其中“1”是患者的身份。所以,在代码中,我这样指定:

@GET
@Path("{id}")
public void getPatient(@PathParam("id") int cId) {
...
}

我在一个例子中看到了它,但我的失败了。我收到了这个错误:

  

com.sun.jersey.api.container.ContainerException:方法,public void PresentationLayer.PatientResource.getPatient(int),使用资源的GET注释,类PresentationLayer.PatientResource,不被识别为带注释的有效Java方法与@HttpMethod。

我不知道为什么这样做。在示例中,我看到它有效。任何提示?

编辑:如果我不写@PathParams(“id”),它可以工作......但是,我怎样才能从网址获取id?

1 个答案:

答案 0 :(得分:8)

  

com.sun.jersey.api.container.ContainerException:方法, public void PresentationLayer.PatientResource.getPatient(int),使用资源的GET注释,类PresentationLayer .PatientResource,不被认为是使用@HttpMethod注释的有效Java方法。

您正尝试使用不返回响应的方法为服务GET请求服务(返回类型void)。