exception loader constraint violation: when resolving method "org.apache.hadoop.io.IOUtils.cleanup(Lorg/apache/commons/logging/Log;[Ljava/io/Closeable;)V" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, org/apache/hadoop/hdfs/FileInputStreamCache, and the class loader (instance of weblogic/utils/classloaders/GenericClassLoader) for resolved class, org/apache/hadoop/io/IOUtils, have different Class objects for the type org/apache/commons/logging/Log used in the signature
Я получаю это при использовании приложения, а не при развертывании уха. Если я понимаю это, я имею два загрузчика классов, у которых есть два разных объекта ведения журнала? как я могу отнести их к одному?
ИЗМЕНИТЬ 1
После дальнейшего расследования, я думаю, что эта ошибка связана с тем, что мы используем общую библиотеку jars, и есть другая версия достояний, что делает их конфликтными. Есть ли способ указать weblogic для использования конкретной библиотеки, а не для упаковки? Я хотел бы изучить это далее
Вам необходимо проверить каталог WEB-INF/lib ваших файлов WAR, чтобы убедиться, что они не содержат банки, которые также существуют в каталоге EAR/lib.
Веб-приложения всегда будут использовать классы WEB-INF/lib, прежде чем искать их в файле EAR. Однако классы, загруженные из EAR, будут видеть только другие классы в EAR. Если у вас одинаковый (или похожий) файл jar в обоих местах, это приведет к проблемам с загрузкой классов, которые вы описываете.
Вам нужно будет обновить свой weblogic-application.xml, чтобы использовать пакет prefer-application-package, чтобы сообщить веб-логике использовать банку из web-inf/lib вместо jar из веб-логики. обратитесь к ссылке Weblogic 10.3.5 Переопределение версии Spring
<weblogic-application>
<prefer-application-packages>
<package-name>org.apache.*</package-name>
<package-name>org.springframework.*</package-name>
</prefer-application-packages>
</weblogic-application>