2012-04-03 4 views
5

В Websphere можно создать «общие библиотеки» и связать с приложениями. Я хотел бы знать, с точки зрения позиции в classpath, какая позиция разделяемых библиотек добавляется? Это означает, что я хочу знать, в случае дублированных ресурсов, которые будут иметь более высокий «приоритет» для загрузки, общие библиотеки или сам EAR/WAR.Общие библиотеки Websphere «Приоритет»?

Например, предположим, что в моем приложении у меня есть ресурсы, называемые appConfig.xml, и я создаю локальный каталог на сервере приложений, помещая еще один appConfig.xml в этот каталог. Если я попытаюсь загрузить ресурсы (например, открытый поток ввода) в моем приложении, какой файл будет загружен?

Я искал какое-то время и не могу найти нигде в этом упоминании. Хотя я могу попробовать это самостоятельно, экспериментируя, я хотел бы знать официальное ожидаемое поведение, если оно есть.

Большое спасибо

ответ

4

В заказе среди загрузчиков классов используется так называемый «режим загрузчика классов», который является либо «родительским первым» (и классами приложений/ресурсами последним), либо «родительским последним» (сначала с классами/ресурсами). Для одного класса приложения загрузчика, упорядоченность пути класса будет:

  1. дорожка класса модуля
  2. зависимостей трассы класса (Class-Path в MANIFEST.MF)
  3. общих пути библиотеки классов

Невозможно изменить настройку конфигурации. Я не думаю, что это упорядочение явно указано в документации, но я также думаю, что это вряд ли изменится. Несмотря ни на что, я бы не рекомендовал полагаться на него. Я бы рекомендовал, чтобы вы использовали уникальные имена ресурсов/классов в одном загрузчике классов.

+2

Также, когда у вас возникли сомнения и вы хотите знать, как WAS использует библиотеки, вы можете использовать «веб-консоль WebSphere -> Устранение неполадок -> просмотрщик загрузчика класса» на консоли администратора WAS. – MrJames

+1

Да, просмотрщик загрузчика классов может быть полезен для определения того, как серверу удалось собрать вещи. Это не обязательно объясняет обоснование заказов. –

+0

Фактически я прочитал это раньше: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html В конце есть специальный раздел о «Использовать изолированный загрузчик классов для этой общей библиотеки», и в этом разделе упоминается заказ, который вы указали. Что я думаю, что это намек на то, что для обычной общей библиотеки он не использует разделенный загрузчик классов для разделяемых библиотек. Может ли кто-нибудь проверить правильность моего понимания? (Если нет, какая разница между изолированным загрузчиком классов и обычным общим lib?) –

Смежные вопросы