В WebLogic 10.0 я использую функцию «Shared J2EE Libraries» (http://download.oracle.com/docs/cd/E11035_01/wls100/programming/libraries.html) в WLS, чтобы сгруппировать некоторые банки, которые должны быть доступны для нескольких ушей. Эти файлы находятся в системном classpath, и я пытаюсь переместить их в общую библиотеку оттуда.
Моя проблема:
- в консоли веб-администратора WLS я щелкаю общую библиотеку (называемую «theSharedLib») в разделе «Развертывания»
- список «Приложения, ссылающиеся на эту библиотеку» пуст
- Я также могу отменить развертывание библиотеки с помощью weblogic.Deployer, но при следующем перезапуске сервера он жалуется на отсутствие библиотеки, на которую ссылаются, при загрузке приложения, на которое ссылаются
Похоже, что при запуске ссылки вступают в силу, но во время выполнения WLS как-то об этом забывает (нужен ли здесь какой-то фокус?).
Я также мог бы достичь этого:
- отменить использование SharedLib (без жалоб)
- отменить развертывание someReferencingApp (ok)
- развернуть someReferencingApp (ошибка! Отсутствует библиотека)
- развернуть SharedLib (нормально)
- deploy someReferencingApp (хорошо; приложение отображается в веб-консоли; однако при следующем перезапуске или после других случайных развертываний список снова становится пустым)
Структура разделяемой библиотеки в разобранном формате каталогов:
- META-INF
- MANIFEST.MF
- application.xml
- Lib
- (вещи, которые я хочу поделиться как баночки)
- dummyejb.jar (потому что он должен что-то содержать)
MANIFEST.MF содержит:
..
Внутренний номер: theSharedLib
Спецификация-версия: 1.0
Реализация-версия: 1.0.0
..
application.xml содержит базовые элементы (один модуль dummyejb ejb).
Структура ссылочного приложения:
Среди прочего, имеется META-INF / weblogic-application.xml, содержащий:
<? Xml version = "1.0"?>
<Библиотека-исх>
<Имя-библиотеки> theSharedLib </ имя-библиотеки>
<Спецификация-версия> 1,0 </ спецификация-версия>
<Реализация-версия> 1.0.0 </ реализация-версия>
<Точного соответствие> True </ точный матч>
</ Библиотека-исх>
</ weblogic-application>
В чем может быть проблема? Должен ли я делать что-либо еще в разделяемой библиотеке или в ссылочных приложениях, чтобы (1) иметь список ссылок правильно и, что наиболее важно (2) делить банки между приложениями?
Я предполагаю, что совместно используемые jar-файлы внутри библиотеки загружаются с использованием одного и того же загрузчика классов в разделяемой библиотеке lib для каждого приложения, что ведет себя почти как поведение sys classpath. Не могли бы вы также подтвердить это?
Спасибо!