在CXF GET,PUT&上获得404 POST工作正常时删除资源

时间:2013-07-16 02:20:06

标签: java rest cxf jax-rs

我有以下服务..

@Path("/persistence")
public interface Persistence {

  @GET
  @Produces("application/json")
  @Path("/projects/{pid}/items")
  public Response getItems(@PathParam("pid") String projectId);

  @POST
  @Produces("application/json")
  @Consumes("application/json")
  @Path("/items")
  public Response addItems(String payload);

  @GET
  @Produces("application/json")
  @Path("/items/{itemId}")
  public Response getItem(@PathParam("itemId") String itemId);

  @PUT
  @Consumes("application/json")
  @Path("/items/{itemId}")
  public Response updateItem(@PathParam("itemId") String itemId,String payload);

  @DELETE
  @Consumes("application/json")
  @Path("/items/{itemId}")
  public Response deleteItem(@PathParam("itemId") String itemId);

}

我在tomcat上部署这项服务,一切都很好。部署服务时没有任何错误。之后,当我尝试测试它时,只有POST工作,而其他所有资源都会导致404找不到错误。我正在使用REST控制台来测试服务。当我做的时候

http://localhost:8081/serv?_wadl

我只看到列出的POST端点,并且列表中没有显示GET,PUT或DELETE资源。我错过了什么?

1 个答案:

答案 0 :(得分:1)

此服务声明为interface

实现此界面的类在哪里?

使用JAX-RS时,有一些关于“注释继承”的规则。

JAX-RS 1.1 - 3.6注释继承:

  

JAX-RS注释可用于方法和方法参数   超类或实现的接口。这样的注释是   由相应的子类或实现类方法继承   前提是该方法及其参数没有任何JAX-RS   自己的注释。超类上的注释优先   在实现的接口上的那些。如果子类或实现方法有任何JAX-RS注释,则所有注释都在   超类或接口方法被忽略。