Динамическое создание меню навигации на основе развернутых банок

Я просто изучаю эту идею, поэтому у меня нет примера кода. Я копался в Интернете, но я не совсем уверен, что мне действительно следует искать, поэтому я не нашел многого. Поэтому я подумал, что спрошу и узнаю, знает ли кто-нибудь, а) это возможно. б) Как я должен это сделать. (Или, по крайней мере, что я должен искать, чтобы узнать о том, чтобы сделать это.)

Я создаю веб-приложение, используя JSP-страницы на клиенте с сервером JBoss, на котором работает J2EE, посередине находится веб-сервер tomcat.

По сути, приложение содержит различные разделы, которые будут развертываться со временем по мере их разработки, а также клиенты могут использовать различные комбинации разделов. Самый аккуратный способ развертывания этого, который я могу придумать, - это встроить каждый раздел в свою собственную банку. Затем, в зависимости от комбинации разделов, актуальных для заказчика, установите на сервер JBoss только необходимые jar-файлы для развертывания.

Чтобы поддержать это, я бы хотел, чтобы в меню навигации клиента отображались только доступные разделы в зависимости от того, что развернуто на сервере JBoss. Может ли мой сервлет узнать, что развернуто на сервере? Я бы хотел, чтобы решение было максимально «тупым», т.е. я не хочу говорить ему, что искать (кроме префикса для идентификации наших банок), поскольку я еще не знаю всего, что мы могли бы строить.

Мое текущее решение состоит в том, чтобы иметь таблицу в базе данных для хранения списка установленных разделов. Но для этого потребуются сценарии обновления и т. д. во время установки, и я уверен, что мы сможем сделать это, просто развернув jar-файлы на сервере.

Заранее спасибо.


person javadeveloper    schedule 20.08.2009    source источник
comment
Спасибо за быстрые ответы, ребята. Я не подумал о манифесте. Отличный совет.   -  person javadeveloper    schedule 21.08.2009


Ответы (2)


Вы можете добавить эту информацию в файл MANIFEST.MF, а затем перечислить все файлы в своем веб-приложении (см. этот ответ о том, как составить список всех манифестов) при запуске.

person Aaron Digulla    schedule 20.08.2009

Я делаю что-то подобное, настраивая параметр «Каталог плагинов» для своего приложения. Затем он регулярно сканирует этот каталог на наличие банок. Он ищет определенные метаданные в манифесте, чтобы определить, действительно ли Jar является допустимым подключаемым модулем, и какой класс из него загрузить (статический инициализатор этого класса регистрирует подключаемый модуль в приложении).

Затем все, что вам нужно сделать, это поместить новый Jar в этот каталог, чтобы добавить его функциональность.

person Jonathan    schedule 20.08.2009