Общая библиотека 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. Не могли бы вы также подтвердить это?



Спасибо!

600   2  

2 ответов:

Спасибо за информацию. На самом деле это то, что я узнал:

1) списки ссылающихся приложений исчезают из веб-консоли, если ссылающееся приложение терпит неудачу при развертывании (странно - возможно, у него есть более глубокие причины, но теперь это вполне согласуется).

2) К сожалению, классы внутри общей библиотеки загружаются загрузчиками классов различных ссылающихся приложений, поэтому таким образом невозможно совместно использовать, например, интерфейсные классы для коммуникационные цели между приложениями.

Я думаю, что манифест.MF разделяемого lib (который является ухом) должен содержать запись Class-Path, ссылающуюся на JARs в lib (это говорит загрузчику классов, где искать классы). Что-то вроде этого:

Class-Path: lib/foo.jar lib/bar.jar lib/foobar.jar

Comments

    Ничего не найдено.