Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: javadeveloperОтветов: 2

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

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

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

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

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

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

  • Спасибо за быстрые ответы, ребята. Я не подумал о манифесте. Отличный совет. javadeveloper 21.08.2009

javadynamicjbossjakarta-ee

Ответы

Ответ 1 · Aaron Digulla

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

Ответ 2 · Jonathan

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы