我正在尝试使用JAX-RS创建一个API,它有多种方式来获取产品。因此,如果您输入例如
herp.com/products/11
您获得ID为11的产品,这非常有效。如果你输入:
herp.com/products/name/banana
您应该获得所有名为banana的产品。尽管按名称获取功能不起作用(参数名称始终为null)。这是带有所有注释的函数。
@GET
@Path("/name/{name}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getByName(@PathParam("{name}") String name) {
Logger.getAnonymousLogger().log(Level.INFO, "getByName, name: " + name);
List<ProductProxy> found = new ArrayList<ProductProxy>();
for(ProductProxy proxy : products)
if(name.equals(proxy.getName()))
found.add(proxy);
return Response.ok(found).build();
}
虽然in-paremeter始终为null。我在注释上做错了吗?类的anotation是@Path(“products”)。
答案 0 :(得分:0)
从路径参数中删除花括号,即更改
@PathParam("{name}") String name
到
@PathParam("name") String name
@Path("foo/{bar})
中的大括号只是表明您有一个名为bar
的路径参数,但它不是参数名称的一部分。