Search code examples
javajbossjax-rsresteasy

Resteasy how to update/add query parameter?


In older version[3.0.7] of resteasy we are able to update the query Parameters

requestContext.getUriInfo().getQueryParameters()
                        .add("limit", recordLimit);

But after updating it with version[3.5.1], above code will throw error for UnmodifiableMultivaluedMap

Then tried to write this code

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.queryParam("limit", recordLimit);

as well as below code

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.matrixParam("limit", recordLimit);

Can someone please explain what will be the right way to update the query parameters ?

Edit 1: Even this wont work

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.replaceQueryParam( "limit", recordLimit);

Solution

  • At last i found the solution,in older version we are doing something like that to add query param on fly

    requestContext.getUriInfo().getQueryParameters()
                            .add("limit", recordLimit);
    

    but in 3.5.1 version its a MultiMap so above scenario wont allow so here is the new way to achieve this

    UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder() ;
    uriBuilder.queryParam("limit", recordLimit);
    requestContext.setRequestUri(uriBuilder.build());