2014-03-28 74 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