是否可以将@Inject
无状态会话 bean 转换为 的子类AuthenticatorBase
?
我使用 JBoss 作为 7.1.1。
我的代码如下所示:
...
public class myValve extends AuthenticatorBase {
@Inject AuthController controller;
//some code ...
}
使用控制器对象会导致NullPointerException
.
是否可以将@Inject
无状态会话 bean 转换为 的子类AuthenticatorBase
?
我使用 JBoss 作为 7.1.1。
我的代码如下所示:
...
public class myValve extends AuthenticatorBase {
@Inject AuthController controller;
//some code ...
}
使用控制器对象会导致NullPointerException
.
如果控制器为空,则意味着 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);
}
执行此代码后,已执行注入。