Hi 王子剑,
please use users_at_jersey.java.net mailing list, this one is for mailing
list administration only.
And about your issue - it can be achieved, you need to exclude requests
containing question mark from first method. See following:
@GET
@Path("{people:[^\\?]*}")
public String getPeople(@PathParam("people") String people) {
return people;
}
@GET
@Path("{people}?location")
public String getLocation(@PathParam("people") String people) {
return "location:" + people;
}
I verified this with following requests:
responseMsg = webResource.path("test").get(String.class); //
matches getPeople
responseMsg =
webResource.path("test?location").get(String.class); // matches getLocation
Regards,
Pavel
On 11/15/11 11:10 AM, 王子剑 wrote:
> Hello All
>
> I am handling a legacy system and I cannot process the request by
> Jersey gracefully.
>
> API:
>
> *GET : http://test.com/{people} <http://test.com/%7Bpeople%7D> *
> Get people information
>
> *GET : http://test.com/{people}?location
> <http://test.com/%7Bpeople%7D?location>* Get people location.
>
>
>
> Code
>
> *_at_GET*
> *_at_Path("{people}")*
> *public People getPeopleInformation(String people);*
> *
> *
> *_at_GET*
> *_at_Path("{people}?location")*
> *public People getPeopleLocation(String people);*
> *
> *
>
> Jersey will not invoke the second method *getPeopleLocation *when the
> client request url: *http://test.com/{people}?location
> <http://test.com/%7Bpeople%7D?location>*, it always dispatch the
> incoming request which end with '?location' to the first method
> '*getPeopleInformation*'.
>
> Is there some way to let Jersey to dispatch request based on query
> parameters like this situation?
> *
> *
> *
> *