Я столкнулся с проблемой при использовании 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 обнаруживается ...) - любойидеи на этот счет?
Настройки:
- GlassFish 3.0.1
- WELD-000900 1.0.1 (SP3)
- Мохарра 2.0.2(FCS b10)
Заранее спасибо!
С уважением, Алекс