Я немного борюсь с событиями CDI. У меня есть класс, который реализуется как КДИ Singleton почти так:CDI События, не полученные от Singleton EJB
import import javax.inject.Singleton;
@Singleton
public class MyClass{
@Inject
Event<StatusUpdateEvent> events;
public MyClass(){};
public void myMethod(){
events.fire(new StatusUpdateEvent());
}
}
Тогда я свой потребительский класс реализован в виде EJB Singleton
import javax.ejb.Singleton;
@Singleton
public class MyObserver(){
public MyObserver(){};
public onStatusUpdateEvent(@Observes StatusUpdateEvent event){
...do something...
}
}
Проблема заключается в том, что, когда myMethod
не вызывается ни одного события получен от myObserver. MyClass
включен в библиотеку jar моего проекта EAR (банка имеет beans.xml), а MyObserver
- EJB того же EAR.
Что я делаю неправильно? Большое спасибо за вашу помощь!
Комментируя мой вопрос. Одна из вещей, которые я заметил, что вышеупомянутый ejb и другой синглтон находятся в разных пулах потоков (admin-thread-pool и thread-pool-1). Это что-то значит? – fabpicca