我正在使用一个@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 方法端像预期的那样工作?