ActiveMQ передается в JSF - PullRequest
4 голосов
/ 23 июля 2010

В настоящее время я читаю из ActiveMQ с компонентом, управляемым сообщениями (EJB3), в конце.Проблема, с которой я сталкиваюсь, заключается в том, что мне необходимо обновить таблицу на моей странице JSF, как только я получу сообщение от ActiveMQ в компоненте, управляемом сообщениями.

Любые предложения о технологиях, которые я могу попробовать, были бы великолепны.В настоящее время я использую простые лица и стеклянные рыбы.

Thx

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

Вы можете использовать опрос Primefaces, чтобы периодически проверять наличие новых сообщений

<h:form>  
     <p:dataTable id="msgTable" var="msg" value="#{tableBean.messages} ">
     ...
     </p:dataTable>

     <p:poll interval="3"   
             actionListener="#{mdBean.messagesAvailable}" update="msgTable" />  
</h:form> 

Подробнее см. http://97.107.138.40:8080/prime-showcase/ui/ajaxPollHome.jsf.

0 голосов
/ 05 декабря 2010

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

Управляемый компонент в основном активен во время HTTPзапрос.Впоследствии его состояние может еще где-то храниться (т. Е. Если используется область приложения, сеанса или диалога), но оно ничего не делает активно.

Что вы можете сделать, это использовать технологию, такую ​​как Comet, где вы в основном приостанавливаетезапрос от бобов поддержки.Затем вы можете позволить компоненту поддержки что-то подождать, прежде чем возобновить запрос.Вы можете позволить управляемому компоненту прослушивать ту же очередь JMS, которую прослушивает управляемый сообщениями компонент (при условии, что используется JMS), или вы можете разрешить управляемому компоненту прослушивать шину событий CDI.Как только MDB получает что-то от ActiveMQ, MDB может поместить это на шину событий CDI, и компонент поддержки получает это.

В результате MDB функционирует как компонент моста.

На Devoxx '10 было несколько презентаций, которые продемонстрировали нечто очень похожее на то, что вы просите.

Я думаю, что среди прочих эта презентация была посвящена этой теме: http://www.adam -bien.com /ролик / abien / запись / pets_and_aliens_running_on

...