我有一个我不允许更改的API:
@POST
@Path("/accomodation/{area}/{val1}/{val2}")
Response createAccomEntry(@PathParam("area") String area, @PathParam("val1") String val1, @PathParam("val2") String val2);
我只能改变实施:
@Override
public Response createAccomEntry(@PathParam("area") String area, @PathParam("val1") String val1, @PathParam("val2") String val2) {
//can't debug the code here
return Response.status(Response.Status.OK).build();
}
API的创建者没有指定要使用的任何mime类型等,我现在无法调试它。从我的REST客户端发出POST请求http://localhost:8080/accomodation/area/val1/val2我将“application / x-www-form-urlencoded”设置为Content-Type标头,并在有效负载中给出它:
area=mock&val1=mock&val2=mock
但我得到的只是404.我做错了什么?
答案 0 :(得分:0)
这是因为一旦在实现上添加任何 JAX-RS注释,它就会在相应的接口方法上否定所有 JAX-RS注释。这就是规范的设计方式。因此,当您使用@PathParam
时,仅此一项将取消接口方法上的所有其他注释,包括@POST
和@Path
,这是使用Jersey注册该端点所需的内容。因此,只需删除实现中的所有@PathParam
,它就可以正常工作。