Внедрение EJB завершается неудачно при наличии перехватчика

Я столкнулся с проблемой при использовании DI и перехватчиков в приложении JSF.

У меня есть резервный компонент, который наблюдает за событиями JSF и выполняет некоторый поиск исходных данных. На странице JSF компонент регистрируется как прослушиватель событий следующим образом:

<f:event type="preRenderView" listener="#{myBean.loadData}"/>

Боб довольно вперед и выглядит в основном так:

@Named
@RequestScoped
public class MyBean {

    @EJB
    private SomeDao dao;

    public void loadData() { ... }

    public void performSomeStuff() { ... }

}

Дао введен правильно, и пока все в порядке. Теперь я хотел бы выполнить некоторую ленивую загрузку, которая выполняется внутри перехватчика (конкретный код не имеет значения, поскольку такое же поведение проявляется, когда перехватчик просто продолжает контекст вызова). Итак, перед вызовом executeSomeStuff() я хотел бы убедиться, что все данные загружены:

    @Interceptors(MyInterceptor.class)
    public void performSomeStuff() { ... }

На данный момент EJB больше не внедряется (появляется NPE...) - есть идеи по этому поводу?

Настройки:

  • Стеклянная рыба 3.0.1
  • СВАРКА-000900 1.0.1 (SP3)
  • Мохарра 2.0.2 (FCS b10)

Заранее спасибо!

С уважением, Алекс


person aix    schedule 07.12.2010    source источник
comment
а вы пробовали внедрить другой компонент (не ejb)? Это работает?   -  person Bozho    schedule 08.12.2010
comment
попробовал некоторые другие компоненты и еще один ejb, пока результат: все, что аннотировано @Inject, вводится, все, что аннотируется @EJB, нет...   -  person aix    schedule 08.12.2010
comment
Кажется, это проблема с реализацией Glassfish. Сначала я отправил сообщение об ошибке в JBoss Jira: issues.jboss.org/browse/WELD-783, но поскольку это работает в JBossAS 6, я также отправил его в Glassfish Jira: java .net/jira/browse/GLASSFISH-15528   -  person aix    schedule 11.01.2011


Ответы (1)


Если вы хотите добиться прогресса, вы можете попробовать использовать перехватчики на основе 299, связанные с привязкой перехватчика, а не в стиле EJB. Если в этом районе есть ошибка, запуск вашего перехватчика немного позже может принести некоторое облегчение.

person covener    schedule 04.01.2011