julien Bordeneuve created CXF-5858:
--------------------------------------

             Summary: WebClient using GET with complex query param object : 
IllegalArgumentException: Unresolved variables; only 0 value(s) given for 1 
unique variable(s)
                 Key: CXF-5858
                 URL: https://issues.apache.org/jira/browse/CXF-5858
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.0.0, 2.7.11
            Reporter: julien Bordeneuve


Hi,

 I use the CXF WebClient to GET a message to a server with a complex query , 
this code work on CXF 2.5.x but after a complete version upgrade to CXF 3.0.0 
(also try on 2.7.11). I obtain this exception IllegalArgumentException: 
Unresolved variables; only 0 value(s) given for 1 unique variable(s).

It seems have a problem when the URITemplate is contruct, the number is not the 
well.

client side : 
"
final List<Object> providers = new ArrayList<Object>();
                providers.add(new JacksonJaxbJsonProvider());
                // providers.add(new ParamConverterProviderImpl());

                WebClient client = WebClient.create(
                                
"http://localhost:8090/rest-cxf_v2.7.11/API/REST/POC/";, providers);

                client = 
client.accept("application/json").type("application/json")
                                .path("/bookingServices/getHotelByCriteria");

                client.resetQuery();
                
                final Criteria criteria = new Criteria();
                criteria.setDestination("Paris");
                criteria.setArrivalDate("20/11/2014");
                criteria.setNbNight("2");
                criteria.setNbAdult("1");
                criteria.setNbChild("2");
                criteria.setNbRoom("1");

                client.query("criteria", criteria);
                
                client.getCurrentURI();
                
                @SuppressWarnings("unchecked")
                final List<Hotel> hotels = (List<Hotel>) client
                                .getCollection(Hotel.class);

                assertThat(hotels).isNotNull();
        }
"
server side : 

        @GET
        @Consumes({ MediaType.APPLICATION_JSON })
        @Produces({ MediaType.APPLICATION_JSON })
        @Path("/getHotelByCriteria")
        public List<Hotel> getHotelByCriteria (@QueryParam("criteria") final 
Criteria criteria)
{
}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to