![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| OlegFlores |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 6.6.2008 Репутация: нет Всего: нет |
Вопрос в следующем.
Есть типовое EE приложение: web, ejb.. Для организации фоновой обработки задания из web создаётся сообщение для MessageDrivenBean, который в ejb. Как получить состояние от MDB в ходе обработки этого сообщения? Это необходимо для оповещения клиента о ходе обработки данных с использованием технологий Comet. (например, при сохранении большого объекта: сколько процентов осталось, или ошибки какие возникли при этом). Между web и браузером связь налажена, проблем нет(используется GWTEventService). Необходимо наладить такую связь между web и ejb!! I love to hear from you! Thanks in advance! !Las cosas buenas le suceden a la gente buena! Спасибо за помощь. |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Нарушение идеологии J2EE. Web является клиентом к EJB, а никак не наоборот. Бизнес-уровень совсем не должен знать о своих клиентах. Те принципы, которые Вы описываете относятся к ESB: типа куча асинхронных сервисов, которые туда-сюда гоняют данные. И везде висят листенеры, которые эти данные обрабатывают. В Вашем случае я бы реализовал дальнейшую цепочку пинга от Comet до уровня EJB и проверял какую-нибудь табличку в базе, которую обновлял бы Ваш MessageDrivenBean. Добавлено через 5 минут и 36 секунд Ну или можно через JNDI: привязать объект к конкретному пользователю. Изменять его в MDB. Ну и опять же лукапить его в каком-нибудь бизнес-методе пингом от Comet -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| OlegFlores |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 6.6.2008 Репутация: нет Всего: нет |
Где же тогда server-push (как только данные изменяются, они отправляются клиенту)?
Получается, что опять же обновление будет происходить через некоторый промежуток времени(пусть и малый, но всё же фиксированный) по инициативе клиента. Не писать же всю логику в WEB'е! Если можно в-кратце, как это на ESB реализовать можно |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
В кратце не получится Enterprise Service Bus Но WEB тут не причем: он тоже является клиентом шины. И также коллбэки будут невозможны. В Dашем случае можно поковырять в сторону replyTo, Но для этого надо будет на стороне WEB прикручивать такого же листенера очереди как MDB. Это в сторону Spring Integration. И из такого листенера делать server-push -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |