I'll take your word for it that it works fine in CXF :-) It's probably Tomcat alright which is causing the problem. It's not a big deal in any case, URL encoding fixes the problem.
Colm. On Tue, Aug 30, 2016 at 2:51 PM, Sergey Beryozkin <[email protected]> wrote: > CXF won't be that bad though and start picking up the matrix parameters > from a query component :-), so my guess Tomcat is stripping it. > > When I run CXF JAXRSClientServerBook.testSearchBook123 > I see in the server log: > > Address: http://localhost:9001/bookstore/books/search?_s=name==CXF*; > id=ge=123;id=lt=124 > > If I update a test server method from : > @GET > @Path("/books/search") > @Produces("application/xml") > public Book getBook(@Context SearchContext searchContext) > > to > ... > public Book getBook(@QueryParam("_s") String s) > > then I can see _s being equal to: > > name==CXF*;id=ge=123;id=lt=124 > > Colm you can try it in CXF too :-) > > Thanks, Sergey > > > > On 30/08/16 14:16, Colm O hEigeartaigh wrote: > >> Actually it appears Francesco is right, encoding ';' as '%3B' gives the >> correct result. >> >> Colm. >> >> On Tue, Aug 30, 2016 at 1:03 PM, Sergey Beryozkin <[email protected]> >> wrote: >> >> Hi Francesco >>> On 30/08/16 13:00, Francesco Chicchiriccò wrote: >>> >>> Il 30 agosto 2016 13:50:18 CEST, "Francesco Chicchiriccò" < >>>> [email protected]> ha scritto: >>>> >>>> Hi Colm, >>>>> have you already tried via SyncopeClient? There should be integration >>>>> test cases for AND... >>>>> >>>>> >>>> I'd think that the fiql string needs to be encoded, otherwise ; could be >>>> interpreted by CXF as separator for matrix parameters... >>>> >>>> No, only if it is provided as part of a path, like this: >>>> >>> http://cxf.apache.org/docs/jax-rs-search.html#JAX-RSSearch-S >>> earchExpressionsinURIPathsegments >>> >>> Otherwise if it is a query component, it is not a problem >>> >>> Cheers, Sergey >>> >>> >>> Il 30 agosto 2016 13:39:10 CEST, Colm O hEigeartaigh >>> >>>> <[email protected]> ha scritto: >>>>> >>>>> Hi all, >>>>>> >>>>>> I've created the following users in Syncope with attributes of "city" >>>>>> and >>>>>> "country": >>>>>> >>>>>> alice/dublin/ireland >>>>>> bob/dublin/canada >>>>>> eve//usa >>>>>> >>>>>> Search for users who live in dublin gives the correct total of "2": >>>>>> >>>>>> curl -u admin:password >>>>>> http://localhost:9080/syncope/rest/users?fiql=city==dublin >>>>>> >>>>>> However, if I search for users who live in dublin and canada, I still >>>>>> get >>>>>> "2", meaning that the second search term is ignored: >>>>>> >>>>>> curl -u admin:password >>>>>> http://localhost:9080/syncope/rest/users?fiql=city==dublin;c >>>>>> ountry==canada >>>>>> >>>>>> The strange thing is that the "or" condition appears to work ok. >>>>>> Searching >>>>>> for users who live in dublin or the usa returns all 3 users as >>>>>> expected: >>>>>> >>>>>> curl -u admin:password >>>>>> http://localhost:9080/syncope/rest/users?fiql=city==dublin,c >>>>>> ountry==usa >>>>>> >>>>>> This is reproducible on both 2.0.0-SNAPSHOT + 1.2.8. It is a bug IMO >>>>>> but >>>>>> wanted to get some feedback first before creating a JIRA. >>>>>> >>>>>> Colm. >>>>>> >>>>>> >>>>> >>>> >>>> >>> -- >>> Sergey Beryozkin >>> >>> Talend Community Coders >>> http://coders.talend.com/ >>> >>> >> >> >> > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
