[weld-issues] [JBoss JIRA] Updated: (WELD-783) @EJB injection fails in @Named bean when interceptor is present

Alexander Hanschke (JIRA) jira-events at lists.jboss.org
Wed Dec 8 14:02:31 EST 2010


     [ https://jira.jboss.org/browse/WELD-783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Hanschke updated WELD-783:
------------------------------------

    Description: 
I have a @Named bean in which I'd like to inject a component, using @Inject as well as a stateless session bean, using @EJB. The ejb is accessed using the no-interface view. Both references get injected properly in that case, but when I use an interceptor on one of the methods, only the references annotated with @Inject get injected, whereas those annotated with @EJB don't.

The interceptor doesn't need to do anything special, this behaviour occurs even if only proceed() is invoked on the invocation context - the interceptor is always invoked correctly.


The following snippet explains the issue:


@Named
public class MyController {

    @EJB
    private MyDao dao;

    @Interceptors(MyInterceptor.class)
    public void control() {
        dao.doDataAccessStuff();    /* NPE */
    }

}

---------------------------------------------------------------
@Stateless
public class MyDao {

    public void doDataAccessStuff() { ... }

}
---------------------------------------------------------------
public class MyInterceptor {

    @AroundInvoke
    public Object intercept(InvocationContext context) throws Exception {
        return context.proceed();
    }

}

  was:
I have a @Named bean in which I'd like to inject a component, using @Inject as well as a stateless session bean, using @EJB. The ejb is accessed using the no-interface view. Both references get injected properly in that case, but when I use an interceptor on one of the methods, only the references annotated with @Inject get injected, whereas those annotated with @EJB don't.

The interceptor doesn't need to do anything special, this behaviour occurs even if only proceed() is invoked on the invocation context - the interceptor is always invoked correctly.


The following snippet explains the issue:


@Named
public class MyController {

    @EJB
    private SomeDao dao;

    @Interceptors(MyInterceptor.class)
    public void control() {
        dao.doDataAccessStuff();    /* NPE */
    }

}

---------------------------------------------------------------
@Stateless
public class MyDao {

    public void doDataAccessStuff() { ... }

}
---------------------------------------------------------------
public class MyInterceptor {

    @AroundInvoke
    public Object intercept(InvocationContext context) throws Exception {
        return context.proceed();
    }

}



> @EJB injection fails in @Named bean when interceptor is present
> ---------------------------------------------------------------
>
>                 Key: WELD-783
>                 URL: https://jira.jboss.org/browse/WELD-783
>             Project: Weld
>          Issue Type: Bug
>          Components: CDI API, Interceptors and Decorators
>    Affects Versions: 1.0.1.Final
>         Environment: Windows 7, NetBeans  6.9.1, GlassFish 3.0.1, Mojarra 2.0.2 (FCS b10), Java 1.6.0_22
>            Reporter: Alexander Hanschke
>              Labels: cdi, ejb, injection, interceptors
>
> I have a @Named bean in which I'd like to inject a component, using @Inject as well as a stateless session bean, using @EJB. The ejb is accessed using the no-interface view. Both references get injected properly in that case, but when I use an interceptor on one of the methods, only the references annotated with @Inject get injected, whereas those annotated with @EJB don't.
> The interceptor doesn't need to do anything special, this behaviour occurs even if only proceed() is invoked on the invocation context - the interceptor is always invoked correctly.
> The following snippet explains the issue:
> @Named
> public class MyController {
>     @EJB
>     private MyDao dao;
>     @Interceptors(MyInterceptor.class)
>     public void control() {
>         dao.doDataAccessStuff();    /* NPE */
>     }
> }
> ---------------------------------------------------------------
> @Stateless
> public class MyDao {
>     public void doDataAccessStuff() { ... }
> }
> ---------------------------------------------------------------
> public class MyInterceptor {
>     @AroundInvoke
>     public Object intercept(InvocationContext context) throws Exception {
>         return context.proceed();
>     }
> }

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the weld-issues mailing list