javax @POST @Consumes和@PathParam

时间:2018-08-27 14:14:13

标签: java rest post servlets path

我正在尝试通过POST请求处理JSON,并且端点也应该能够如下获得@PathParam,以便该方法同时传递path参数和JSON对象,但我的应用程序正在重载404。

如果我完全删除@PathParam,一切正常。

我在做什么错了?

// This is ignored when i call `POST example.com/endpoint/42` and returns a 404
@POST @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("endpoint/{param}")
public List<MyResult> myRequestMethod( @PathParam("param") int p, MyJsonRequest j) {        
        // ... use p & j
}

// This works provided I remove the other above 
@POST @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("endpoint}")
public List<MyResult> myRequestMethod( MyJsonRequest j) {        
        // ... use j
}

// This works as well
@GET
@Path("similar/{id}")
@Produces(MediaType.APPLICATION_JSON)
public List<MyResult> otherMethod(
        @PathParam("id") long id) {
          // ...
}

0 个答案:

没有答案