Почему WAR загружается в weblogic внутри EAR по-разному?

Как WebLogic 11g загружает библиотеки в файл EAR? У меня проблема с веб-приложением, которое при развертывании как WAR (с библиотеками, которые зависят от WEB-INF / lib) работает нормально. Однако, когда он находится внутри файла EAR, WebLogic не находит эти библиотеки, если я не помещаю их в APP-INF / lib. Означает ли это, что при развертывании как EAR мне придется вытащить все файлы JAR из каталога WEB-INF / lib и поместить их в APP-INF / lib? или существует ли конфигурация, которую можно выполнить в WebLogic, чтобы этого избежать?

Спасибо!


person wsb3383    schedule 21.07.2011    source источник


Ответы (2)


Если у вас есть файлы JAR, которые необходимо совместно использовать между несколькими файлами WAR или между файлами WAR и файлами EAR, вам необходимо упаковать их в EAR.

Если WAR # 1 имеет JAR в своем WEB-INF / lib и упакован в EAR с WAR # 2, то WAR # 2 не сможет видеть файлы JAR в WAR # 1 / WEB-INF / lib.

person Jeff West    schedule 21.07.2011

Решение вашей проблемы потребует некоторого понимания того, как загрузка классов Java EE работает в контейнере. Чтобы получить понимание, но основная проблема заключается в том, что, когда вы упаковываете свое приложение как EAR, вы вводите другой загрузчик классов (загрузчик классов приложения) в иерархию загрузки классов. Вы можете настроить WebLogic для загрузки из веб-приложения с помощью элемент Prefer-Web-Inf-Class.

person jonathan.cone    schedule 21.07.2011