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
个文件夹!
我有一个 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
个文件夹!