是否可以@Inject
无状态会话bean进入AuthenticatorBase
的子类?
我正在使用JBoss作为7.1.1。
我的代码如下所示:
...
public class myValve extends AuthenticatorBase {
@Inject AuthController controller;
//some code ...
}
使用控制器对象会导致NullPointerException
。
答案 0 :(得分: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);
}
执行此代码后,已执行注射。