Social Icons

.

понедельник, 16 мая 2016 г.

Как сослаться из одного JEE проекта на другой?

Дано.

Есть Enterprise проект, развернутый на сервере приложений JBOSS или WildFly.

Задача.

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


Решение

Тривиальным, и часто правильным решением было бы включение внешней библиотеки в состав проекта. Это наилучший способ, если подключается статическая библиотека скаченная из интернета и поставляемая без исходников.
Есть ряд случаев, когда внешняя библшиотека притерпеввает регулярные изменения (без изменения интерфейса, разумеется). Это все возможные драйвера, адаптеры ресурсов и пр. В этом случае ее целесообразнее подключать как внешний компонент.
Типичное решение это размещение библиотеки в папке ..\wildfly\standalone\lib\  и указание ее расположения в переменной Class-Path файла MANIFEST.MF. Однако такое решение требует рестарта сервера при обновлении библиотеки и следовательно нарушает принципы работы JEE.
Хорошим решением может стать указание расположения библиотеки в разделе Dependencies, файла MANIFEST.MF, причем с путем относительно папки deployment. В этом случае, библиотека, размещенная через панель администратора сервера приложений, будет немедленно видна приложению. Причем сервер приложений сам позаботитсмя о том, что бы компоненты аккуратно перешли на ее использование.

Итоговый вид файла манифест для размещения библиотеки SensorAPI.jar:


Manifest-Version: 1.0
Class-Path:
Dependencies: deployment.SensorAPI.jar

Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...