Weblogic EAR Classloading - PullRequest
       16

Weblogic EAR Classloading

3 голосов
/ 25 августа 2009

Я развертываю EAR в узле WebLogic со многими jar-файлами, определенными в пути к классу начальной загрузки (startWeblogicServer.bat). Проблема заключается в том, что мое ухо и загрузчик содержат разные версии одних и тех же jar-файлов, причем некоторые из них содержат извлеченные сторонние библиотеки, которые также отличаются по версии от jar-файлов начальной загрузки WebLogic, вызывая всевозможные ошибки пути к классам.

Я знаю, что вы можете установить предпочтительные jar-файлы в xml-приложении EAR, но это может быть очень утомительно для решения в отношении jar-файлов, которые включают извлеченные сторонние библиотеки с точки зрения понимания всех зависимостей.

Есть ли правильный подход, который мне нужен здесь? Думаю ли я об этом неправильно? Любая помощь будет принята с благодарностью!

Пока что рекомендовано Предпочтение-web-inf-классы, но оно не будет работать, потому что я не развертываю WAR, также предпочитаем, чтобы мы использовали пакеты-приложения-пакеты, но у нас все еще есть проблема, описанная выше ... Больше совет там ?? Спасибо!

1 Ответ

4 голосов
/ 25 августа 2009

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

Вы уже знаете, что это правда, потому что подход, который вы используете, создает вам проблемы.

Единственное оправдание для того, чтобы сделать это по-вашему, это попытаться сэкономить место на диске, не дублируя JAR-файлы в нескольких доменах. Я говорю, что дисковое пространство дешево и постоянно дешевеет. Общие JAR означают общие зависимости, и вы не хотите заставлять каждый домен экземпляра WebLogic обновлять JAR только потому, что это нужно одному гражданину.

Удалите JAR-файлы из начальной загрузки сервера и продублируйте нужные вам в каждом EAR-файле. Сделайте каждый EAR, каждый домен независимым от других.

ОБНОВЛЕНИЕ:

Вам нужно получить свой собственный сервер.

Или добавьте тег <предпочитайте-web-inf-classes> в вашу конфигурацию.

Обратитесь к по этому за подробностями.

...