Конфликт Weblogic 12.2.1 и OpenSaml2

У меня есть приложение веб-службы с весенней загрузкой, которое использует зависимость opensaml (старая версия, 2.2.3). Когда я развертываю Weblogic, я получаю:

Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at org.opensaml.xml.XMLConfigurator.<clinit>(XMLConfigurator.java:60) ~[com.oracle.weblogic.security.opensaml2.jar:na]

Обходной путь, который я сделал, такой же, как у этого пользователя: https://stackoverflow.com/a/20913280/2968729. Я переименовал com.oracle.weblogic.security.opensaml2.jar, чтобы его можно было игнорировать.

Как описано в ошибке, у weblogic есть собственный opensaml2.jar, который использует log4j, которого нет в пути к классам моего приложения, и поэтому он не работает.

Итак, дело в том, что я не хочу ни добавлять log4j, ни использовать com.oracle.weblogic.security.opensaml2.jar, а вместо этого использовать мой opensaml из моего пути к классам. Каков правильный способ добиться этого?

weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
        xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
        http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j</wls:package-name>
            <wls:package-name>ch.qos.logback.*</wls:package-name>
            <wls:package-name>org.opensaml</wls:package-name>
            <wls:package-name>org.apache.cxf</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

Я уже указываю использовать opensaml моего пути к классам, поэтому я не понимаю, что происходит.


person anat0lius    schedule 16.07.2018    source источник


Ответы (1)


Так глупо: weblogic.xml был не в том месте, поэтому его игнорировали. У меня это было в папке src/main/resource.

Это должно быть src/main/webapp/WEB-INF/weblogic.xml

Обратите внимание, что есть папка webapp!

person anat0lius    schedule 16.07.2018