@SessionScoped
データベースに新しいレコードを追加し、オブザーバーに通知するためにCDIイベントを発生させるCDIBeanを使用しています。
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メソッド側では機能しないのでしょうか。