[
https://issues.apache.org/jira/browse/CXF-7501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16225665#comment-16225665
]
Andriy Redko commented on CXF-7501:
-----------------------------------
Sure, I think you have better exposure to upcoming changes / trends, which is
good :-) We could certainly explore what it takes to go @Inject only, so I can
add the documentation noting the possible change. Btw, Jersey has a lot of
@Context mentioned in the docs
(https://jersey.github.io/documentation/latest/user-guide.html).
> Cannot inject field in ContainerRequestFilter
> ---------------------------------------------
>
> Key: CXF-7501
> URL: https://issues.apache.org/jira/browse/CXF-7501
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 3.1.10, 3.2.0
> Environment: Linux Mint 64 bit, TomEE Plus 7.0.3, JavaEE 7
> application using MVC specification and reference implementation(Libs
> Attached)
> Reporter: Jeyvison Nascimento
> Assignee: Andriy Redko
> Labels: cdi
> Fix For: 3.1.14, 3.2.1
>
> Attachments: javax-mvc.jar, ozark.jar
>
>
> Hey folks.
> We found a weird behavior while running MVC specification(JSR 371) on TomEE
> witch CXF. We have a *ContainerRequestFilter* defined called
> *JaxRsContextFilter*
> {code:java}
> @PreMatching
> @Priority(0)
> public class JaxRsContextFilter implements ContainerRequestFilter {
> @Inject
> private JaxRsContextProducer jaxRsContextProducer;
> @Context
> private Configuration configuration;
> @Context
> private HttpServletRequest request;
> @Context
> private HttpServletResponse response;
> public JaxRsContextFilter() {
> }
> public void filter(ContainerRequestContext requestContext) throws
> IOException {
> this.jaxRsContextProducer.populate(this.configuration, this.request,
> this.response);
> }
> }
> {code}
> You can see that we have a JaxRsContextProducer annotated to be injected as a
> field in our object but when JAXRSUtils is called to run the the container
> filters it injects the fields annotated as *@Context* , not the fields
> annotated with *@Inject*.
> {code:java}
> for (ProviderInfo<ContainerRequestFilter> filter : containerFilters) {
> try {
> InjectionUtils.injectContexts(filter.getProvider(),
> filter, m);
> filter.getProvider().filter(context);
> } catch (IOException ex) {
> throw ExceptionUtils.toInternalServerErrorException(ex,
> null);
> }
> {code}
> It causes our filter(*JaxRsContextFilter*) to throw a NullPointerException
> when filtering the request because it uses the producer to perform some
> actions in this operation.
> I believe this field should be injected as well, not only the *@Context*
> fields.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)