gpt4 book ai didi

spring-boot - java.lang.ClassCastException : org. opensaml.core.xml.schema.impl.XSAnyBuilder 无法转换为 org.opensaml.xml.XMLObjectBuilder

转载 作者:行者123 更新时间:2023-12-05 03:04:57 28 4
gpt4 key购买 nike

在我们的应用程序中,我们正在尝试升级到 Spring boot 2,我们正在使用 spring-security-saml2-core:1.0.4.RELEASE,在运行应用程序时我们遇到以下异常。看起来,类路径上有两个 jar xmltooling-1.4.6opensaml-core-3.3.0,它们具有相同的文件 default-config.xml。在这种情况下,类加载器恰好将 opensaml-core-3.3.0 放在 xmltooling-1.4.6.jar 之前,而 default-config.xml 是错误的正在加载

<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).

有人可以帮忙吗?请..

最佳答案

引用https://issues.shibboleth.net/jira/browse/OSJ-152

opensaml V2版本使用xmltooling.jar

opensaml V3 版本使用opensaml-soap-impl.jarxmltooling.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 jar。
  2. 否则升级你的代码库以兼容 v3 版本并删除 opensamlV2 相关的 jar

关于spring-boot - java.lang.ClassCastException : org. opensaml.core.xml.schema.impl.XSAnyBuilder 无法转换为 org.opensaml.xml.XMLObjectBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52557754/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com