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

Reply via email to