我正在使用@SessionScoped
CDI 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方法方面?
答案 0 :(得分:0)
那是因为他们被绑定到同一个会话,其他会话不应该接收不同会话的事件。