简单更改后,REST服务不起作用

时间:2011-08-18 20:14:34

标签: java json rest

我按照本教程学习一些REST服务和AJAX调用:http://www.mkyong.com/webservices/jax-rs/integrate-jackson-with-resteasy/

我改变了这个终点:

@GET
@Path("/get")
@Produces("application/json")
public Product getProductInJSON() {

    Product product = new Product();
    product.setName("iPad 3");
    product.setQty(999);

    return product; 

}

到这个,为了以jsonp格式返回产品:

@GET
@Path("/get?callback={name}")
@Produces("application/javascript")
public String getProductInJSON(@PathParam("name") String callback){

    Product product = new Product();
    product.setName("iPad 3");
    product.setQty(999);

    String productString = callback + "({" + product.toString() + "})";

    return productString; 

}

使用产品的toString():

@Override
public String toString() {
    return "name:" + name + "," + "qty:" + qty;
}

但现在,当我检查URI在浏览器中是否正常工作时,使用:

  

http://localhost:8080/restws/json/product/get?callback=process

我有此错误消息:

  

HTTP错误:404

     

无法找到相对的资源:/ json / product / get of full path:   http://localhost:8080/restws/json/product/get?callback=process

     

RequestURI = / restws / JSON /产品/获得

有人可以帮助我理解为什么在这个微小的变化之后它会给我这个错误吗?感谢

1 个答案:

答案 0 :(得分:2)

查询参数不是@Path的一部分。您应该使用@QueryParam处理Jersey User Guide处理它们。