[
https://issues.apache.org/jira/browse/CXF-2335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12729161#action_12729161
]
Sergey Beryozkin commented on CXF-2335:
---------------------------------------
Thanks for posting the actual test details.
JAX-RS spec does not actually provide for the contexts injection into
subresource instances.
Consider this example :
(1)
public class GroupsResource {
@Path("group")
public GroupResource group() {
return new GroupResource();
}
}
and
(2)
public class GroupsResource {
private GroupResource group = new GroupResource();
@Path("group")
public GroupResource group() {
return group;
}
}
injecting in this last example (2) would not be thread safe.
Would you agree ?
I reckon it is easy enough for the GroupsResource class to manage the injection
into individual subresource GroupResource instances which is what the spec
recommends. One would just need to add a setUriInfo with no annotations on
GroupResource and
in (1) do
GroupResource gr = new GroupResource()
gr.setUriInfo(uriInfo)
in (2)
you can add a setter as I suggested in the previous email and also inject the
provided value into the shared GroupResource at the moment the method is called.
I can only see one possible option in resolving this JIRA : if a user
configures jaxrs:server to allow for the subresource injection then the runtime
will inject into subresources using a field injection if needed but the runtime
but it will really work reliably for dynamically created subresource instances,
otherwise, as in (2), it will be thread-unsafe
> @Context does not work for JAX-RS member fields
> -----------------------------------------------
>
> Key: CXF-2335
> URL: https://issues.apache.org/jira/browse/CXF-2335
> Project: CXF
> Issue Type: Bug
> Components: REST
> Affects Versions: 2.2.2
> Reporter: Hendy Irawan
>
> This works in Jersey, but not in CXF:
> class ........ {
> @Context
> private UriInfo context;
> }
> The alternative, works on both CXF and Jersey:
> class ...... {
> @GET
> public void something(@Context UriInfo context) {
> ...
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.