首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.opensaml.core.xml.schema.impl.XSAnyBuilder不能转换为org.opensaml.xml.XMLObjectBuilder

org.opensaml.core.xml.schema.impl.XSAnyBuilder不能转换为org.opensaml.xml.XMLObjectBuilder
EN

Stack Overflow用户
提问于 2018-09-28 14:45:33
回答 1查看 7.9K关注 0票数 3

在我们的应用程序中,我们试图升级到Spring 2,我们使用的是SpringSecurity-saml2-core:1.0.4.RELEASE,在运行应用程序时我们得到了以下异常。看起来,在类路径上有两个JARxmltool1.4.6和opensaml 3.3.0,它们具有相同的文件default-config.xml。在本例中,类加载器碰巧将opensaml 3.3.0放在xmltool-1.4.6.jar之前,并且加载错误的default-config.xml

代码语言:javascript
复制
<ObjectProviders>
        <ObjectProvider qualifiedName="xt:DEFAULT">
        <BuilderClass className="org.opensaml.core.xml.schema.impl.XSAnyBuilder"/>
        <MarshallingClass className="org.opensaml.core.xml.schema.impl.XSAnyMarshaller"/>
        <UnmarshallingClass className="org.opensaml.core.xml.schema.impl.XSAnyUnmarshaller"/>
    </ObjectProvider>  </ObjectProviders> 

java.lang.ClassCastException: org.opensaml.core.xml.schema.impl.XSAnyBuilder cannot be cast to org.opensaml.xml.XMLObjectBuilder
        at org.opensaml.xml.XMLConfigurator.initializeObjectProviders(XMLConfigurator.java:236)
        at org.opensaml.xml.XMLConfigurator.load(XMLConfigurator.java:182)
        at org.opensaml.xml.XMLConfigurator.load(XMLConfigurator.java:166)
        at org.opensaml.xml.XMLConfigurator.load(XMLConfigurator.java:143)
        at org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:203)
        at org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:186)
        at org.opensaml.DefaultBootstrap.bootstrap(DefaultBootstrap.java:92)
        at org.opensaml.PaosBootstrap.bootstrap(PaosBootstrap.java:27)
        at org.springframework.security.saml.SAMLBootstrap.postProcessBeanFactory(SAMLBootstrap.java:42).

有人能帮上忙吗。请..。

EN

回答 1

Stack Overflow用户

发布于 2019-07-31 07:08:55

参考https://issues.shibboleth.net/jira/browse/OSJ-152

opensaml V2版本使用xmltooling.jar

opensaml V3版本使用与xmltooling.jar不同的包名的opensaml-soap-impl.jar

示例:

  • opensaml-soap-impl.jar使用-> org.opensaml.core.xml.XMLObjectBuilder
  • xmltooling.jar使用-> org.opensaml.xml.XMLObjectBuilder

根路径:您的类路径有v2和v3版本的opensaml。这就是classcast异常的原因。

解决方案:

理想情况下,您不需要同时拥有两个版本的opensaml。由于maven依赖关系管理,可能会意外发生这种情况。移除其中一个。

  1. 如果您的代码库与opensamlv2版本兼容,如果您不想升级,请将opesamlv3 jars排除如下。
  2. 否则,将代码库升级到与v3版本兼容,并删除与opensamlV2相关的jars。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52557754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档