WebLogic 12.2.1: переопределить библиотеку Джексона в common_modules с версией в EAR - PullRequest
0 голосов
/ 19 марта 2019

Учитывая, что веб-приложение Spring 4.3.11-RELEASE с Jackson 2.8.10, развернутым в WebLogic 12.2.2.1, мы сталкиваемся с проблемами, поскольку загружаемая версия Jackson является старой, которая находится в дереве WLS oracle_common/modules , который имеет преимущество перед другими библиотеками.

Мы попробовали следующее:

  1. Добавление заявления о предпочтениях в weblogic.xml

<prefer-application-packages> <package-name>com.fasterxml.jackson.*</package-name> </prefer-application-packages>

Запуск с флагом -verbose:class ясно показывает, что загружаются плохие банки:

[Загружен com.fasterxml.jackson.databind.type.ArrayType from Файл: /u01/oracle/oracle_common/modules/com.fasterxml.jackson.core.jackson-databind.jar]

  1. Размещение файлов jar com.fasterxml.jackson. * В домене lib папка

Ничего не работает.

Кроме того, обратите внимание, что это общий экземпляр WebLogic, в котором у нас есть только право записи в папку домена, поэтому мы не можем делать творческие идеи, такие как физическое удаление устаревших устаревших банок Джексона из папки oracle_common или работа с patch_classpath или аналогичный.

Любая помощь с благодарностью!

1 Ответ

1 голос
/ 19 марта 2019

Проблема заключалась в том, что директива prefer-application-packages помещалась в файл weblogic.xml внутри пакета WAR внутри EAR, и путь к классам не выбирал ее в правильном порядке:

foo-ear -> foo.war -> WEB-INF/weblogic.xml

Мы решили это, поместив директиву на уровне EAR: foo-ear -> META-INF -> weblogic-application.xml

Теперь она работает правильно.

...