On 23/04/2015 14:17, Sergey Beryozkin wrote:
Hi,

I've checked the code, right now only annotations on the BeanParam bean setters are recognized on the client side so if you move them from fields to setters then it will work. I believe I did fix the server side code awhile back to check BeanParam bean fields too but haven't updated the client proxy code.
So, another workaround is needed for now :-)

Ok, this explains the client-side error, but what about the AbstractMethodError I got when sending a manual request to

http://localhost:9080/syncope/rest/users;realm=%2Feven%2Ftwo;realm=%2Fodd

?

On 23/04/15 12:56, Francesco Chicchiriccò wrote:
Hi,
with reference to the solutions proposed in this thread [1] to avoid
forcing client code passing null parameters, I am exploring @BeanParam.

I have now UserService (an interface) with a brand new list() method
like as

     @GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
     PagedResult<UserTO> list(@BeanParam ListQuery listQuery);

and my ListQuery bean is as [2].

Now, when invoking

http://localhost:9080/syncope/rest/users;realm=%2Feven%2Ftwo;realm=%2Fodd

I received an error 500:

[...]
Caused by: java.lang.AbstractMethodError:
org.apache.syncope.core.rest.cxf.service.UserServiceImpl.list(Lorg/apache/syncope/common/rest/api/beans/ListQuery;)Lorg/apache/syncope/common/lib/to/PagedResult;


If I check the URL generated by client code for

         ListQuery lq = new ListQuery();
         lq.setRealms(Arrays.asList("/even/two", "/odd"));

I see that

http://localhost:9080/syncope/rest/users

is generated (e.g. without realms).

What am I doing wrong?
TIA

Regards.

[1] http://cxf.547215.n5.nabble.com/JAX-RS-Matrix-parameters-and-method-matching-tp5756387p5756414.html

[2] https://paste.apache.org/aHaK

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC
http://people.apache.org/~ilgrosso/

Reply via email to