在weblogic.xml中,<prefer-application-packages>无法正常工作吗?

时间:2018-11-01 20:48:45

标签: java weblogic tomcat8 weblogic12c opensaml

我尝试了很多解决方案/尝试错误,这些都是从stackover流和谷歌搜索中获得的。使用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 的问题,这些问题都来自我的项目,然后Server也来自Oracle weblogic。这不是我的项目。我正在为我的项目使用2.6.6版本的opensaml jar。我尝试了<wls:package-name>org.opensaml.*</wls:package-name>,但没有成功。

检查weblogic.xml的主要原因是,当我尝试打开一个特定的URL时,它在浏览器中显示以下错误。但是,当您打开相同的URL时,它适用于 Tomcat 服务器。所以我的假设是weblogic.xml-> Preferred-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)

1 个答案:

答案 0 :(得分:0)

解决方法:

  

从以下位置删除com.oracle.weblogic.security.opensaml2时   weblogic->模块文件夹,此问题得到解决。无需删除   com.oracle.weblogic.security.opensaml jar。