Push-сообщение сервера с JMS-сообщениями в веб-приложение JSF - PullRequest
1 голос
/ 13 февраля 2012

Я пишу два веб-приложения, которые имитируют шаблон издателя / подписчика. Клиент добавляет подписку из веб-приложения JSF в базу данных через EJB-компонент в серверной части. Затем другой клиент публикует сообщение из другого веб-приложения JSF, используя тот же EJB-компонент в серверной части. Этот EJB-компонент должен уведомлять всех подписчиков, которые соответствуют опубликованному сообщению. Я ищу способ уведомить всех подписчиков чем-то вроде JMS. Неважно, использую я JMS или нет, но я должен использовать JSF, и уведомление должно быть асинхронным.

Я искал что-то вроде Технология Push и Комета , и я нашел что-то в предыдущем посте . В этом примере используется RichFaces , который совместим с JMS и JSF, но НЕ показывает, как получить сообщение или использовать JMS. Я обнаружил также этот пост , в котором объясняется, как не использовать JMS с RichFaces, но, как я уже сказал, я хочу использовать JMS, и, возможно, это мое единственное решение для отправки / получения сообщения от EJB-компонента. Все найденные решения используют только управляемый компонент JSF, но что если вам нужно получить уведомление от компонента EJB?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Вы можете использовать JMS для этого, но для широковещательной рассылки сообщений вам придется обрабатывать себя, поэтому в конце не имеет значения, используете ли вы JMS для этого сценария или нет, будет отличаться только часть, отправляющая / обрабатывающая опубликованное сообщение.

Пример: клиент использует приложение JSF, которое пересылает сообщение в очередь / тему JMS. Другое приложение JSF (JMS-клиент) получит сообщение с MDB, проанализирует его и получит список получателей из базы данных и назначит сообщение каждому, снова используя базу данных.

Как вы можете видеть, все происходит с простой обработкой данных в БД, и использование JMS не является необходимым, вы можете использовать любой EJB или сервлет для обработки сообщения за вас.

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

0 голосов
/ 13 февраля 2012

Я думаю, WebSockets - это технология, которую вы ищете.Взгляните на PrimePush для реализации в PrimeFaces .

. Вы можете комбинировать это с SEAM-JSF , чтобы иметь доступ к ресурсам JMS черезАннотации CDI в ваших бинах.

...