Общая библиотека Weblogic 10 не отображается в ссылочных приложениях
На сервере WebLogic 10.0 я использую "Общий в J2EE библиотек" ( http://download.oracle.com/docs/cd/E11035_01/wls100/programming/libraries.html ) характеристика СПЕКТРОСМЕЩАЮЩИХ в группе некоторые банки, которые должны быть доступны в нескольких уха. Эти банки жили на системного classpath, и я стараюсь, чтобы переместить их в общую библиотеку оттуда.
Моя проблема:
- в консоли веб-администратора WLS я щелкаю разделяемую библиотеку (с именем "theSharedLib") в разделе развертывания
- в Список "приложения, ссылающиеся на эту библиотеку" пуст
- я также могу отменить развертывание lib с помощью weblogic.Deployer, но при следующем перезапуске сервера он жалуется на отсутствие библиотеки ссылок при загрузке ссылающегося приложения
Поэтому кажется, что при запуске ссылка вступает в силу, но во время выполнения WLS почему-то забывает об этом (нужен ли здесь какой-то фокус?).
Я мог бы также добиться этого:
- undeploy theSharedLib (нет жаловаться)
- undeploy someReferencingApp (ok)
- развернуть someReferencingApp (ошибка! отсутствует lib)
- развернуть theSharedLib (ok)
- deploy someReferencingApp (ok; приложение будет перечислено в веб-консоли; однако при следующей перезагрузке или после случайных других развертываний список снова опустеет)
Структура общего lib ear в разнесенном каталоге формат:
- META-INF
- манифест.MF
- применение.xml
- lib
- (вещи, которые я должен разделить как банки)
- думмийб.jar (потому что он должен что-то содержать)
Манифест.МФ содержит:
..
Расширение-имя: theSharedLib
Спецификация-Версия: 1.0
Реализация-Версия: 1.0.0
..
Применение.xml содержит базовые элементы (один dummyejb ejb модуль).
Структура приложения для ссылок:
Среди прочего, он имеет META-INF / weblogic-приложение.xml, содержащий:
Версия xml= "1.0"?>
theSharedLib
1.0
1.0.0
правдаточное соответствие>
конфигурированию приложения>
В чем может быть проблема? Должен ли я делать что-либо еще в общей библиотеке lib или в ссылочных приложениях, чтобы (1) Правильно иметь список ссылок и, самое главное, (2) делиться банками между приложениями?
Я предполагаю, что общие банки внутри lib загружаются с использованием одного и того же загрузчика классов в общей lib для каждого приложения, что очень похоже на поведение sys classpath. Не могли бы вы также подтвердить это?
Спасибо!
2 ответов:
Спасибо за информацию. На самом деле это то, что я узнал:
1) списки ссылающихся приложений исчезают из веб-консоли, если ссылающееся приложение терпит неудачу при развертывании (странно - возможно, у него есть более глубокие причины, но теперь это вполне согласуется).
2) К сожалению, классы внутри общей библиотеки загружаются загрузчиками классов различных ссылающихся приложений, поэтому таким образом невозможно совместно использовать, например, интерфейсные классы для коммуникационные цели между приложениями.
Я думаю, что манифест.MF разделяемого lib (который является ухом) должен содержать запись
Class-Path, ссылающуюся на JARs в lib (это говорит загрузчику классов, где искать классы). Что-то вроде этого:Class-Path: lib/foo.jar lib/bar.jar lib/foobar.jar
Comments