【问题标题】:JBoss AS7 @Inject bean into valveJBoss AS7 @Inject bean into Valve
【发布时间】:2014-03-28 16:53:42
【问题描述】:

是否可以将@Inject 无状态会话 bean 转换为 AuthenticatorBase 的子类?

我使用 JBoss 作为 7.1.1。

我的代码如下所示:

...

public class myValve extends AuthenticatorBase {

    @Inject AuthController controller;

    //some code ...

}

使用控制器对象导致NullPointerException。

【问题讨论】:

    标签: jboss cdi inject tomcat-valve


    【解决方案1】:

    如果控制器为空,则意味着 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);
    }
    

    执行此代码后,注入已执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2013-08-28
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多