Weblogic 12.2.1 和 OpenSaml2 冲突

Weblogic 12.2.1 and OpenSaml2 conflict

我有一个 spring 启动 Web 服务应用程序,它使用 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]

我所做的解决方法与该用户相同:。我重命名了 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,所以我不明白发生了什么。

太蠢了:weblogic.xml放错地方了,所以被忽略了。我把它放在 src/main/resource 文件夹中。

它必须在 src/main/webapp/WEB-INF/weblogic.xml

注意有 webapp 个文件夹!