Resltlet使用包含queryparam的URL映射资源

时间:2016-04-28 11:34:55

标签: java rest restlet

我必须开发一个休息网络服务。为此我使用restlet api。
我有3个网址:

 1. /info/person?name=aaa
 2. /info/person?name=aaa&age=21
 3. /info/person?name=aaa&age=21&sex=male

我想将这些网址映射到3种不同的资源方法。

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.QueryParam;

@Path("/info/person")
@Produces(MediaType.APPLICATION_XML)
public class TestResource{

//method 1
@GET
public Response getInfo(@QueryParam("name") final String name){
...
}

//method 2
@GET
public Response getInfo(@QueryParam("name") final String name){
....
}

//method 3
@GET
public Response getInfo(@QueryParam("name") final String name, @Queryparam("age") final int age, @Queryparam("sex") final String sex){
....
}
}

我希望对于url1,将调用方法1,对于url2,将调用方法2,对于url3,将调用方法3。

但这不起作用。不会调用预期的方法。

请帮我确定我在做错的地方。

restlet version : 2.3.4

1 个答案:

答案 0 :(得分:1)

JAX-RS不允许两个端点具有相同的HTTP路径和不同的查询参数。

建议您通过 - Two GET methods with different query parameters : REST