【问题标题】:Weblogic 12.2.1 and OpenSaml2 conflictWeblogic 12.2.1 和 OpenSaml2 冲突
【发布时间】:2023-03-10 03:49:01
【问题描述】:

我有一个使用 opensaml 依赖项的 Spring Boot Web 服务应用程序(旧版本,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,所以我不明白发生了什么。

【问题讨论】:

    标签: java spring-boot weblogic opensaml


    【解决方案1】:

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

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

    注意有webapp 文件夹!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-29
      • 2017-03-18
      • 1970-01-01
      • 2018-12-04
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      相关资源
      最近更新 更多