2014-07-26 48 views
0

我使用的是新泽西州和我有以下两种方法的RESTful:新泽西误差@PathParam

@GET 
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 
public List<Activity> getAllActivities() { 
    return activityRepository.findAllActivities(); 
} 

@GET 
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 
@PathParam("{activityId}") 
public Activity getActivity(@PathParam("activityId") String activityId) { 
    return activityRepository.findActivity(activityId); 
} 

一切运作良好之前我增加了第二种方法。但是,我的tomcat现在给出了以下错误。

org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization. 
[[FATAL] A resource model has ambiguous (sub-)resource method for HTTP method GET and input mime-types as defined by @Consumes and @Produces annotations 

任何线索?

回答

0

您应该使用的@Path("{activityId}")代替@PathParam("{activityId}")

文档指出

@PathParam

绑定一个URI模板参数或含有模板参数的资源的方法路径段的值参数,资源类字段或资源类bean属性。

@Path

标识资源类或类的方法将服务的请求的URI路径。

因此,@Path应该用于定义资源方法将服务的URI路径。

+0

谢谢Keerthivasan! 我只是简单的傻笑 –

+0

@ i_ch3ry不客气:) – Keerthivasan