JBoss AS7 @Inject bean в клапан

Можно ли @Inject превратить сессионный компонент без сохранения состояния в подкласс AuthenticatorBase?

Я использую JBoss как 7.1.1.

Мой код выглядит так:

...

public class myValve extends AuthenticatorBase {

    @Inject AuthController controller;

    //some code ...

}

Использование объекта контроллера приводит к NullPointerException.


person Johannes    schedule 28.03.2014    source источник


Ответы (1)


Если контроллер имеет значение 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);
}

После выполнения этого кода инъекции были выполнены.

person Steven Pessall    schedule 28.03.2014