首页 > 解决方案 > 在 weblogic.xml 中,不管用?

问题描述

我已经尝试了很多解决方案/尝试和错误,这些都是从 stackover flow 和谷歌搜索中得到的。使用 Weblogic 12.2.1.3 和我的项目weblogic.xml

<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.8/weblogic-web-app.xsd">

      <security-role-assignment>
        <role-name>admin</role-name>
        <principal-name>Administrators</principal-name>
     </security-role-assignment>

     <wls:container-descriptor>
      <wls:prefer-application-packages>
           <wls:package-name>org.opensaml</wls:package-name>
      </wls:prefer-application-packages>

      <wls:show-archived-real-path-enabled>true</wls:show-archived-real-path-enabled>

    </wls:container-descriptor>

</wls:weblogic-web-app>

问题是,即使我在 weblogic.xml 中提到了从我的项目中获取的opensaml,服务器也是从 Oracle weblogic 中获取的。它不是从我的项目中获取的。我正在为我的项目使用 2.6.6 版本的 opensaml jar。我试过<wls:package-name>org.opensaml.*</wls:package-name>但没有成功。

检查 weblogic.xml 的主要原因是,当我尝试打开一个特定的 url 时,它在浏览器中显示以下错误。但是当您打开相同的 url 时,它适用于Tomcat服务器。所以我的假设是 weblogic.xml --> prefer-application-packages 标签不起作用。

java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
    at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:1046)
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1038)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:104)
    at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:611)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:543)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:496)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:72)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
    at org.springframework.security.saml.SAMLBootstrap.postProcessBeanFactory(SAMLBootstrap.java:42)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:284)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:179)

标签: javaweblogictomcat8weblogic12copensaml

解决方案


解决方法:

当您从 weblogic-->Module 文件夹中删除 com.oracle.weblogic.security.opensaml2 时,问题得到解决。无需删除 com.oracle.weblogic.security.opensaml jar。


推荐阅读