2014-03-28 73 views
0

是否有可能將@Inject無狀態會話bean放入AuthenticatorBase的子類中?JBoss AS7 @將bean注入閥門

我正在使用JBoss 7.1.1。

我的代碼如下所示:

...

public class myValve extends AuthenticatorBase { 

    @Inject AuthController controller; 

    //some code ... 

} 

使用控制器對象導致NullPointerException

回答

1

如果controller爲null,則表示myValve對象本身未被注入。

是可能的現有的對象添加到CDI上下文追溯,例如用下面的代碼:

public <T> void addToCDI(T object) { 
    BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager(); 
    AnnotatedType<T> annotatedType = beanManager.createAnnotatedType((Class<T>)bject.getClass()); 
    InjectionTarget<T> injectionTarget = beanManager.createInjectionTarget(annotatedType); 
    CreationalContext<T> context = beanManager.createCreationalContext(null); 
    injectionTarget.inject(object, context); 
} 

此代碼注射已經被執行的執行之後。

+0

感謝您的回答!有用。 – Johannes