Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите идею / 8 сообщений из 8, страница 1 из 1
09.01.2012, 14:32:56
    #37606471
amigaboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
На глассфише располагается несколько EAR'ов, некоторые из которых содержат WAR и являются веб-приложениями (очевидно). В интерфейсе каждого приложения должно выводится меню, которое переключает пользователя между ними. Хочется сделать так, чтобы это меню генерировалось автоматически при старте сервера по установленным приложениям.

Моя идея была такова:
- Поскольку существует отдельный EAR c Remote-вызовами ejb-методов, то в нем создаем хэш-таблицу для списка приложений и методы для ее обслуживания (put, getHashMap).

- В каждом WAR'е создаем ServletContextListener, который обращается к Remote-интерфейсу через его имя в JNDI и при старте приложения кладет о себе информацию в общую хэш-таблицу

- Соответственно, при генерации меню, можно получить общий список приложений

Вроде все не плохо, но этот отдельный EAR деплоится после всех остальных...

Есть какие-нибудь еще идеи по организации общего списка между приложениями?
...
Рейтинг: 0 / 0
09.01.2012, 14:41:50
    #37606482
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
amigaboyНа глассфише располагается несколько EAR'ов, некоторые из которых содержат WAR и являются веб-приложениями (очевидно). В интерфейсе каждого приложения должно выводится меню, которое переключает пользователя между ними. Хочется сделать так, чтобы это меню генерировалось автоматически при старте сервера по установленным приложениям.
Если это всё одно приложение, почему бы его и не упаковать в единый EAR?


amigaboy - Соответственно, при генерации меню, можно получить общий список приложений
Вроде все не плохо, но этот отдельный EAR деплоится после всех остальных...

Это решаемо надо ковырять доки по glassfish. Он должен позволять смотреть стаус деплоя модулей через JMX. Тогда ваше приложение может просто дождатся, когда всё задеплоится. Или какой порядок нужен?
Вообще все полноценные сервера поддерживают свои собственные фичи по упорядывачиванию деплоймента.
http://blogs.oracle.com/alexismp/entry/module_initialization_order_in_java

amigaboyЕсть какие-нибудь еще идеи по организации общего списка между приложениями?
От чего я бы отказался, так это от того чтобы что-то там сканировать. Лучше чтобы каждый модуль сам явно регистрировался, например, в базе и писал какие пункты в меню он предоставляет.
...
Рейтинг: 0 / 0
09.01.2012, 14:43:58
    #37606484
amigaboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
BlazkowiczamigaboyЕсть какие-нибудь еще идеи по организации общего списка между приложениями?
От чего я бы отказался, так это от того чтобы что-то там сканировать. Лучше чтобы каждый модуль сам явно регистрировался, например, в базе и писал какие пункты в меню он предоставляет.
В базе - это вариант. А если приложение удаляется с сервера, а запись в базе остается - каким образом это проверять?

Можно, по-идее, во время генерации меню пинговать каждую запись на предмет 404ой ошибки.
...
Рейтинг: 0 / 0
09.01.2012, 14:48:14
    #37606489
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
amigaboyВ базе - это вариант. А если приложение удаляется с сервера, а запись в базе остается - каким образом это проверять?
Можно, по-идее, во время генерации меню пинговать каждую запись на предмет 404ой ошибки.
Да, верно. Не лучший вариант. Решаемый, но не самый простой. Тогда обязуйте все модули в JMX публиковаться.
Но обязательно сделайте общий API для всех. Чтобы всегда можно было просто поменять реализацию, не трогая остальные модули.
...
Рейтинг: 0 / 0
09.01.2012, 15:14:22
    #37606516
amigaboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
А WAR умеет каким-то способом получать свое название? Чтобы вручную не вписывать в константы AdminWAR, SalesWAR и прочее, а как-то более универсальным способом его получить.
...
Рейтинг: 0 / 0
09.01.2012, 15:37:32
    #37606529
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
amigaboyА WAR умеет каким-то способом получать свое название? Чтобы вручную не вписывать в константы AdminWAR, SalesWAR и прочее, а как-то более универсальным способом его получить.
Смотри JMX. Там почти наверняка будет.
...
Рейтинг: 0 / 0
09.01.2012, 19:11:13
    #37606723
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
BlazkowiczЕсли это всё одно приложение, почему бы его и не упаковать в единый EAR?
+1
либо вы делаете админку сервера, либо подумать ЧТО это вообще будет.
Т.к. если это SOAP то делать его не на коленке.
Если это....
...
Рейтинг: 0 / 0
09.01.2012, 19:13:53
    #37606727
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею
amigaboyА WAR умеет каким-то способом получать свое название? Чтобы вручную не вписывать в константы AdminWAR, SalesWAR и прочее, а как-то более универсальным способом его получить.
Хотя, может вы имеете ввиду ContextPath для того чтобы сформировать URL, а не само имя war модуля? Тогда его можно и через Servlet API получить. Но в JMX эта информация так же должна присутствовать.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите идею / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]