On 23/04/2015 14:28, Sergey Beryozkin wrote:
Hi
On 23/04/15 13:21, Francesco Chicchiriccò wrote:
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

I suspect the old method signature is still visible somewhere at a JVM level ?

Doh... after moving JAX-RS annotations to setter methods, things now seem to work fine.

FYI the former

userService.list(Arrays.asList("/even/two", "/odd"), null, null, null);

now is

userService.list(SyncopeClient.getSubjectListQueryBuilder().realm("/even/two").realm("/odd").build());

which looks far better, isn't it?

Regards.

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