Как я могу использовать внешние банки на JBoss 7? - PullRequest
5 голосов
/ 12 марта 2012

Теперь я могу загружать банки, которые находятся в EAR / lib.Но я хочу поместить банки в общий путь для использования другим приложением.Я обнаружил, что тег файла jboss-deploy-Structure.xml может сделать это.Но это не работает.Я получил исключение ClassNotFound.Я не знаю почему?

<deployment>
   <resources>
        <resource-root path="/common/test.jar" />
   </resources>
 </deployment>

1 Ответ

11 голосов
/ 15 марта 2012

Один из способов использования глобальных библиотек в разных приложениях можно сделать, сделав их доступными в виде модулей.Поэтому добавьте модули в библиотеку, которую вы предоставляете в качестве поставщика сервера.

Пример: Чтобы сделать ваш test.jar доступным для всех приложений, создайте папку с именем модуля иПодкаталог main (например, modules/commons/test/main).

Поместите туда свою библиотеку и файл описания модуля с именем module.xml.Пример содержимого:

<module xmlns="urn:jboss:module:1.0" name="commons.test">
    <resources>
        <resource-root path="test.jar"/>
    </resources>
</module>

Теперь библиотека доступна для всех приложений.Чтобы получить доступ к модулю, ваше приложение должно определить зависимость в манифесте.

Приложения MANIFEST.MF :


Dependencies: commons.test

Это также может быть сделано maven во время сборки.Проверьте https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 для деталей

Обратите внимание, что вы модифицируете сам сервер.Все приложения, использующие ваш модуль, зависят от него.Приложение с зависимостью от модуля commons.test не будет развернуто на сервере, на котором этот модуль не предусмотрен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...