Где поставить внешние библиотеки в Glassfish - PullRequest
8 голосов
/ 31 июля 2011

Я создал проект JSF2 с Netbeans 7 и успешно развернул его на Glassfish 3.1.Файл ear стал довольно большим (6,5 МБ), однако большая его часть состоит из внешних jar-файлов (таких как apache commons, solrj, primefaces, pdfrenderer и т. Д.), Которые копируются в соответствующие файлы war / ejb.

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

Я искал в Интернетеответы на этот вопрос, и единственное, что я обнаружил, это поместить внешние файлы jar в «domains / domain1 / lib» или «domains / domain1 / lib / ext» в установочном каталоге glassfish и снять флажок «Package» в библиотеке проекта Netbeansнастройки, но пока ничего из этого не работало (я всегда получаю ClassNotFoundExceptions).

Нужно ли что-то делать, адаптировать настройку пути к классам где-нибудь или как этого добиться?У кого-нибудь есть решение?

Обновление: Хорошо, я обнаружил, что это происходит только на моей локальной установке Glassfish, которая идет с Netbeans (это ноутбук с 64-битной Windows 7, работающей на нем),На моем удаленном компьютере с Linux он работает, как и ожидалось, то есть я смог поместить все внешние библиотеки в 'domains / domain1 / lib' - мой файл ear сейчас всего ~ 700k :) Я попробую это на моем Mac и на другой Windows 7поле также, чтобы увидеть, если это проблема, связанная с ОС или что-то еще.

Ответы [ 2 ]

2 голосов
/ 14 августа 2011

Я думаю, что теперь могу ответить на вопрос сам: domain1 / lib, кажется, является правильным местом для размещения всех этих jar-файлов. По крайней мере, он отлично работает на 2 Linux-блоках, которые я пробовал, и на моем Mac. Я также узнал, почему это не работает на моем ноутбуке с Windows 7. Путь к домену зависит от пользователя, если вы используете установку Glassfish, поставляемую с Netbeans, это означает, что вы должны поместить файлы jar в

C: \ Users \ `username` \ .netbeans \ 7.0 \ Config \ GF3 \ domain1 \ Lib

, чтобы работать, как ожидалось, банки под

C: \ Program Files \ glassfish-3.1 \ glassfish \ domain \ domain1 \ lib

с другой стороны, похоже, игнорируется загрузчиком классов.

0 голосов
/ 02 августа 2011

Единственный каталог, который является частью classpath, это каталог domain1\lib\classes. Поместив туда свои банки, вы добавите их в путь к классам.

Вы также можете поместить свой файл ear в каталог lib (ранее APP-INF \ lib). Это то место, куда вы можете поместить ваши баночки .

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