[
https://issues.apache.org/jira/browse/CXF-5776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14016816#comment-14016816
]
MIchail Nikolaev edited comment on CXF-5776 at 6/3/14 3:57 PM:
---------------------------------------------------------------
[~sergeyb] looks like I not clearly explained the issue.
I want to use PathParam inside BeanParam, as defined in specification -
https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/BeanParam.html
But it not work for this cases:
{code}
public class MyBean {
@PathParam("not_works_1")
private String header;
@PathParam("not_works_2")
public void setResourceId(String id) {...}
public void setIdentity(@PathParam("not_works_3") Identity identity) {
this.identity = identity;
}
}
{code}
But it only works for:
{code}
@PathParam("identity")
public void setIdentity(@PathParam("identity") Identity identity) {
this.identity = identity;
}
{code}
was (Author: nkey):
[~sergeyb] looks like I not clearly explained the issue.
I want to use PathParam inside BeanParam, as defined in specification -
https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/BeanParam.html
But it not work for this cases:
{code}
public class MyBean {
@PathParam("not_works_1")
private String header;
@PathParam("not_works_2")
public void setResourceId(String id) {...}
}
{code}
But it only works for:
{code}
@PathParam("identity")
public void setIdentity(@Nonnull @PathParam("identity") Identity identity) {
this.identity = identity;
}
{code}
> @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
> Assignee: Sergey Beryozkin
> 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)