Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Подгрузка библиотек при запуске веб-сервера / 4 сообщений из 4, страница 1 из 1
30.10.2014, 08:53
    #38791381
xPro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подгрузка библиотек при запуске веб-сервера
Есть такие две папки:

C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT\WEB-INF\lib

Откуда в первую очередь загружаются библиотеки? Если в них лежит одна и та же библитека но разной версии, то какая будет загружена для использования в веб-приложении root?
...
Рейтинг: 0 / 0
30.10.2014, 09:28
    #38791420
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подгрузка библиотек при запуске веб-сервера
xPro,

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html
1) В первую очередь загрузятся из Tomcat 7.0\lib. Java ClassLoader по-умолчанию делегирует загрузку родителю.
2) Так лучше не делать, это чревато необычными исключениями, когда один и тот же класс будет загружет разными ClassLoader-ами.
Все контейнеры пытаются эту проблему разруливать, но не у всех и не всегда это выходит.
...
Рейтинг: 0 / 0
30.10.2014, 09:54
    #38791461
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подгрузка библиотек при запуске веб-сервера
xPro,
off/2
в IDE поставь галки, чтобы в war библиотека уровня сервера не шла
...
Рейтинг: 0 / 0
30.10.2014, 10:17
    #38791498
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подгрузка библиотек при запуске веб-сервера
Порядок загрузки прописан в catalina.properties:
Код: plaintext
1.
2.
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
server.loader=
shared.loader=
Кроме этого учитывается системный загрузчик, который ставится в комстроке java опцией -cp.
Дополнительно, common-, server- и shared-загрузчики отфильтровывают некоторые пакеты (CORBA, например). Тогда их можно разместить только в системном загрузчике или использовать endorsed-механизм. Но endorsed меняет бутовый загрузчик классов, что не всегда приемлимо.
Общее правило: каждому пакету - одно место.
В ${catalna.home}/lib не должно быть ничего, кроме классов самого сервера.
Если "нечто" требуется и серверу и приложению или нескольким приложениям - оно должно быть в ${catalina.base}/lib.
Всеми силами избегайте использования разных версий одной библиотеки в разных приложениях.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подгрузка библиотек при запуске веб-сервера / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]