Weblogic 10.3.1.0 использует com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar …, я хочу использовать commons-net-2.0.jar из своего кода

Weblogic 10.3.1.0 использует com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar... Я хочу использовать commons-net-2.0.jar из своего кода.

Как я могу вынудить это использовать более новый JAR в моем коде только?

9
задан Pascal Thivent 4 August 2010 в 04:47
поделиться

2 ответа

Я хочу использовать commons-net-2.0.jar из моего кода.

WebLogic использует стратегию первого загрузчика родительских классов , и у вас в основном есть два варианта настройки этого поведения:

  • Используйте элемент seek-web-inf-classes в weblogic.xml Дескриптор развертывания веб-приложения (который находится в WEB-INF рядом с web.xml ) ~ или ~
  • Упакуйте своего инсайдера войны в EAR и используйте WebLogic Filtering classloader , который вы настраиваете в дескрипторе weblogic-application.xml (который входит в META-INF рядом с application.xml )

Вот пример weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
 xmlns="http://www.bea.com/ns/weblogic/90"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
     </container-descriptor>
</weblogic-web-app>

Вот пример weblogic-application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">
    <application-param>
        <param-name>webapp.encoding.default</param-name>
        <param-value>UTF-8</param-value>
    </application-param>
    <prefer-application-packages>
        <package-name>javax.jws.*</package-name>
    </prefer-application-packages>
</weblogic-application>

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

См. Также

20
ответ дан 4 December 2019 в 10:03
поделиться

Пробовали ли вы поместить необходимый JAR в \ WEB-INF \ lib в WAR, \ APP-INF \ lib в EAR или в каталог \ lib файла EAR?

Если ваш проект представляет собой автономный веб-сайт project (без EJB), размещения JAR в WEB-INF \ lib должно быть достаточно. Для корпоративных приложений, которые, возможно, имеют модули EJB и веб-модули, объединенные в файл EAR, APP-INF \ lib должен работать, хотя я не уверен в поддержке WebLogic Server каталога библиотеки (обычно это каталог \ lib в файле EAR. , но иногда настраивается через application.xml), реализованная в Java EE 5.

РЕДАКТИРОВАТЬ : В сценарии, когда библиотека сервера приложений загружается перед библиотекой, присутствующей в приложении, функция WebLogic Server фильтрованных загрузчиков классов поможет гарантировать, что приложение всегда будет загружать правильные классы из пути к классам, а не путь к классам сервера.

1
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: