0

我正在使用一个@SessionScopedCDI bean,它在数据库中添加一条新记录并触发一个 CDI 事件来通知观察者。

在 JSF 中,我a4j:push用来在事件触发时呈现组件,并且它按预期工作。

在触发事件的同一个会话 bean 中,我还有一个观察者方法来打印消息,这仅适用于触发事件的会话(浏览器)。

所有其他浏览器都在 JSF 中接收事件(呈现内容并且我看到了新记录),但不调用支持 bean 中的方法。

从有关此问题的其他帖子中,我知道扩展CDI Observer pattern以支持全球事件是可行的(http://blog.akquinet.de/2012/02/28/extending-cdi-observer-pattern-to-support-global-events/) .

但是为什么它在 JSF 端而不是在没有任何修改的情况下在支持 bean 方法端像预期的那样工作?

4

1 回答 1

0

那是因为它们绑定到同一个会话,其他会话不应该接收不同会话的事件。

于 2013-03-15T21:37:05.660 回答