On 04/10/15 18:44, Veit Guna wrote:
Alright. Thanks for the quick feedback!

May I create a ticket for that?

Sure, please do open JIRA tickets whenever you spot CXF client issues

Cheers, Sergey

Thanks
Veit

Am 04.10.2015 um 19:33 schrieb Sergey Beryozkin:
Hi Veit

The client proxy code apparently does not support nested BeanParams,
so more work will need to be done

Cheers, Sergey
On 04/10/15 19:21, Veit Guna wrote:
Hi Sergey.

I see. Any news about the nested @BeanParam :)?

Cheers
Veit

Am 04.10.2015 um 19:18 schrieb Sergey Beryozkin:
Hi Veit

The CXF server will also work the same way, the restriction is only on
the client proxy side, I've just checked a code, it should be
sufficient to have a setter - which is used to determine a possible
field candidate without having to check all the fields - this is done
on the proxy side because no caching is done so this optimization
saves some time.

I can investigate later on if dropping this optimization can work...

Sergey
On 04/10/15 11:12, Veit Guna wrote:
While working around the nested @BeanParam for now, I encountered the
fact,
that @...Param annotations work on fields now, but somehow
getter/setter
for that field
are still required. Leaving them out, will leave the value unset on
request.

On the opposite, the Jersey server is fine with fields without
getter/setter.

Is this by intention?

Thanks
Veit

Am 04.10.2015 um 10:25 schrieb Veit Guna:
Ok, 3.0.5 seems to fix the field annotation issue - nice :).

One to go...

Am 04.10.2015 um 10:13 schrieb Veit Guna:
Hi.

I'm using Apache CXF 3.0.4 on client side against a Jersey based
REST
service.
On client side I'm using the CXF client proxy using the server side
interface classes.

Now I encountered, that annotated fields (e.g. with @QueryParam) on
@BeanParam classes
are ignored when invoking a method passing the @BeanParam class.
Somewhere in a JIRA ticket,
I found the hint, that setters must be annotated instead. Doing so
does
work indeed.

Is there a reason, why annotations on fields aren't supported? Isn't
this allowed based
on the JAX-RS spec? Since Jersey seems fine with it. The problem I
have
is, that I would
have to change the server beans to be able to use the CXF client
proxy.

Another thing I encountered is, that nested @BeanParam's doesn't
seem to
be supported.

Having (pseudocode):

class A {
    B b;

    @BeanParam
    set(B b);
    B get();
}

class B {
    String bar;

    @QueryParam("foo")
    set(String bar);
    String get();
}

Interface {
    something(@BeanParam A a);
}

Invoking Jersey's endpoint manually giving the query params seem to
work
without a problem.
I'm missing something?

Thanks
Veit











--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to