我有以下服务..
@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资源。我错过了什么?
答案 0 :(得分:1)
此服务声明为interface
。
实现此界面的类在哪里?
使用JAX-RS时,有一些关于“注释继承”的规则。
JAX-RS 1.1 - 3.6注释继承:
JAX-RS注释可用于方法和方法参数 超类或实现的接口。这样的注释是 由相应的子类或实现类方法继承 前提是该方法及其参数没有任何JAX-RS 自己的注释。超类上的注释优先 在实现的接口上的那些。如果子类或实现方法有任何JAX-RS注释,则所有注释都在 超类或接口方法被忽略。