我必须开发一个休息网络服务。为此我使用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
答案 0 :(得分:1)
JAX-RS不允许两个端点具有相同的HTTP路径和不同的查询参数。
建议您通过 - Two GET methods with different query parameters : REST