我在CDI事件上苦苦掙扎。 我有一個實現爲CDI辛格爾頓差不多是這樣一類: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辛格爾頓
import javax.ejb.Singleton;
@Singleton
public class MyObserver(){
public MyObserver(){};
public onStatusUpdateEvent(@Observes StatusUpdateEvent event){
...do something...
}
}
的問題是,當myMethod
調用任何事件從myObserver收到。 MyClass
包含在我的EAR項目的庫jar(jar包含beans.xml)中,MyObserver
是同一個EAR的EJB。
我在做什麼錯?非常感謝你的幫助!
評論我的問題。其中一件事我注意到前面提到的ejb和其他單例在不同的線程池(admin-thread-pool和thread-pool-1)上。這是否意味着什麼? – fabpicca 2013-03-08 21:09:59