События CDI и a4j:push

Я использую 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, а не на стороне метода вспомогательного компонента без каких-либо изменений?


person amb    schedule 14.03.2013    source источник


Ответы (1)


Это связано с тем, что они привязаны к одному и тому же сеансу, другие сеансы не должны получать события для разных сеансов.

person LightGuard    schedule 15.03.2013