【发布时间】:2013-03-08 14:29:29
【问题描述】:
我在 CDI Events 上有点挣扎。 我有一个几乎像这样实现为 CDI Singleton 的类:
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 包含在我的 EAR 项目的库 jar 中(jar 有 beans.xml),MyObserver 是同一 EAR 的 EJB。
我做错了什么?非常感谢您的帮助!
【问题讨论】:
-
评论我的问题。我注意到的一件事是,前面提到的 ejb 和另一个单例位于不同的线程池(admin-thread-pool 和 thread-pool-1)上。这是否意味着什么?
标签: jakarta-ee ejb cdi