users@jersey.java.net

Jersey and UriInfo.getQueryParameters()

From: Wilhelmsen Tor Iver <TorIverW_at_arrive.no>
Date: Thu, 26 Mar 2009 17:20:44 +0100

Is UriInfo.getQueryParameters supposed to work? I have tried in 1.0.1,
1.0.2 and 1.0.3-SNAPSHOT and all three give an empty map and calls to
getFirst() return null for the parameters I know are in the query.

Extract from the root resource class in question:

@Path("/employees")
@Produces("application/xml")
public class Employees {

        @Context
        UriInfo info;

        /** Detailed resource */
        @Path("{id}")
        public Object get(@PathParam("id") String id) {
                id = id.toUpperCase();
                return new Employee(id);
        }

        @GET
        @Produces("application/xml")
        @XmlElementWrapper(name = "employee-summaries")
        @XmlElement(name = "employee-summary")
        public List<EmployeeSummaryBean> query() {
                List<EmployeeSummaryBean> ret = null;
                if (info != null) {
                        MultivaluedMap<String, String> params =
info.getQueryParameters();
                        String name = params.getFirst("name");
                        String organization =
params.getFirst("organization");

At this point, both values are null. I have also tried using argument
injection instead of attribute injection, as if that would make a
difference.

For the time being I just inject the HttpServletRequest and pick up the
parameter values from that, but I would have loved to stick with the
JAX-RS API :) In particular because this might later be deployed into an
ESB that might have a custom handling of UriInfo which picks values from
a Message instead...

Is this a known bug or something? I searched the issue tracker to no
avail...

- Tor Iver