You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2014/06/03 16:49:02 UTC

[jira] [Commented] (CXF-5776) @PathParam not works inside @BeanParam

    [ https://issues.apache.org/jira/browse/CXF-5776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14016574#comment-14016574 ] 

Sergey Beryozkin commented on CXF-5776:
---------------------------------------

m.getParameterAnnotations()[0] returns all annotations for the first and only parameter in a setter, they are passed to the optional ParamConverterProviders. BeanParam beans need to have JAX-RS annotations set at a method level, as opposed to at the parameter level. See the example:
https://jax-rs-spec.java.net/nonav/2.0/apidocs/index.html

> @PathParam not works inside @BeanParam
> --------------------------------------
>
>                 Key: CXF-5776
>                 URL: https://issues.apache.org/jira/browse/CXF-5776
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.11
>            Reporter: MIchail Nikolaev
>            Priority: Minor
>
> Check line:
> https://fisheye6.atlassian.com/browse/~br=2.7.x-fixes/cxf/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java?r=3248da800fdf25f5bd962b962b7ff2d9d98cd225#to485
> Error in the snippet
> {code}
>  m.getParameterAnnotations()[0]
> {code}
> - for some reason you get first annotation from *parameter* of the method (setter?).
> So, to make it worked I need to use such workaround:
> {code}
>     @PathParam("identity")
>     public void setIdentity(@Nonnull @PathParam("identity") Identity identity) {
>         this.identity = identity;
>     }
> {code}
> Probably you need to call _getter.getAnnotation(anClass)_ to allow such properties to work (it worked in 2.7.9 as far as I remember):
> {code}
>     public void setIdentity(@Nonnull Identity identity) {
>         this.identity = identity;
>     }
>     @PathParam("identity")
>     @Nonnull
>     public Identity getIdentity() {
>         return identity;
>     }
> {code}
> Also, it is better to catch Exception instead of Throwable.



--
This message was sent by Atlassian JIRA
(v6.2#6252)