在JAX-RS上使用subPath on方法

时间:2013-09-13 09:28:59

标签: java jax-rs

我正在尝试使用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”)。

1 个答案:

答案 0 :(得分:0)

从路径参数中删除花括号,即更改

@PathParam("{name}") String name

@PathParam("name") String name

@Path("foo/{bar})中的大括号只是表明您有一个名为bar的路径参数,但它不是参数名称的一部分。