Я использую bean-компонент @SessionScoped
CDI, который добавляет новую запись в базу данных и запускает событие CDI для уведомления наблюдателей.
В JSF я использую a4j:push
для рендеринга компонента при возникновении события, и он работает так, как ожидалось.
В том же сеансовом компоненте, который запускает событие, у меня также есть метод наблюдателя для печати сообщения, и это работает только для сеанса (браузера), который запустил событие.
Все другие браузеры получают событие в JSF (содержимое визуализируется, и я вижу новую запись), но метод в компоненте поддержки не вызывается.
Из других сообщений об этой проблеме я знаю, что расширение CDI Observer pattern
для поддержки глобальных событий будет работать (http://blog.akquinet.de/2012/02/28/extending-cdi-observer-pattern-to-support-global-events/).
Но почему он работает так, как ожидалось, на стороне JSF, а не на стороне метода вспомогательного компонента без каких-либо изменений?