验证文件 spring-ldap.xsd 时出错

Posted

技术标签:

【中文标题】验证文件 spring-ldap.xsd 时出错【英文标题】:Error validating the file spring-ldap.xsd 【发布时间】:2014-12-29 06:51:32 【问题描述】:

我的 bean 配置中有这个错误,但是对于另一个项目有效.. xml 是:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:ldap="http://www.springframework.org/schema/ldap"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/ldap http://www.springframework.org/schema/ldap/spring-ldap.xsd">

但是在一个项目中我有这个错误:

referenced file contains error http://www.springframework.org/schema/ldap/spring-ldap.xsd

【问题讨论】:

【参考方案1】:

更新:

我像这样修改我的光束并开始工作(我添加了 conf. 用于池化但并不重要):

<!-- LDAP config -->

    <bean id="contextSourceTarget" class="org.springframework.ldap.core.support.LdapContextSource">
        <property name="url" value="$ldap.url" />
        <property name="base" value="$ldap.base" />
        <property name="userDn" value="$ldap.userDn" />
        <property name="password" value="$ldap.password" />
        <property name="pooled" value="false" />
    </bean>

    <bean id="contextSource"
        class="org.springframework.ldap.pool.factory.PoolingContextSource">
        <property name="contextSource" ref="contextSourceTarget" />
    </bean>

    <bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
        <constructor-arg ref="contextSource" />
    </bean>

【讨论】:

谢谢,这对我来说解决了类似于***.com/questions/2526687/… 的问题【参考方案2】:

我猜这是因为 Pivotal 的网站在显示实际 XSD 之前显示验证码,

见Spring schemaLocation fails when there is no internet connection

这取决于您是在 IDE 中还是在运行时收到错误。

如果它是一个专门的 XML 编辑器,您应该参考您的编辑器的文档,了解如何覆盖/指定模式位置,如果它在运行时中,您可能必须检查您的项目依赖项(如果它是一个 maven 项目,则为 pom.xml) .

【讨论】:

我在 IDE 中遇到错误,如果我尝试运行该项目,它可以工作。我可以忽略它吗? 你的 IDE 是什么?我会首先检查它是否可以在没有互联网连接的情况下工作,即 schamas 是从 jars 中正确获取的。 我在 IDE 中使用 Eclipse 我认为你可以手动将该方案安装到 Eclipse 中 wiki.eclipse.org/Using_the_XML_Catalog 将 http://www.springframework.org/schema/ldap/spring-ldap.xsd 与物理文件关联。【参考方案3】:

Spring 使用自己的机制在类路径库(运行时)中获取 XSD。

使用以下文件

    META-INF/spring.handlers(通过 Handler 将标签 xml 解析为对象)

spring-core-3.2.2.jar 示例

http://www.springframework.org/schema/c=org.springframework.beans.factory.xml.SimpleConstructorNamespaceHandler http://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler http://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler

    META-INF/spring.schemas(识别使用的正确 xsd)

spring-core-3.2.2.jar 示例

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd http://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd http://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd http://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd http://www.springframework.org/schema/beans/spring-beans-3.2.xsd=org/springframework/beans/factory/xml/spring-beans-3.2.xsd http://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-3.2.xsd http://www.springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd http://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd http://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd http://www.springframework.org/schema/tool/spring-tool-3.1.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd http://www.springframework.org/schema/tool/spring-tool-3.2.xsd=org/springframework/beans/factory/xml/spring-tool-3.2.xsd http://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-3.2.xsd http://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd http://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd http://www.springframework.org/schema/util/spring-util-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd http://www.springframework.org/schema/util/spring-util-3.1.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd http://www.springframework.org/schema/util/spring-util-3.2.xsd=org/springframework/beans/factory/xml/spring-util-3.2.xsd http://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-3.2.xsd

IDE 希望通过 schemaLocation 解析 XSD 的位置,因此我建议在 Eclipse 上删除 XSD 验证。

Windows->Preferences->Validation->“暂停所有验证器”

【讨论】:

Windows->Preferences->Validation-> "Suspend all validators" 对我没用 这种做法删除了eclipse的所有动作来执行验证,否则在后台尝试查找所有资源(XSD)。反正你有see this link.

以上是关于验证文件 spring-ldap.xsd 时出错的主要内容,如果未能解决你的问题,请参考以下文章

验证 php 文件中的开始日期和结束日期时出错

如何修复“文件上传失败。”使用任何图像上传验证时出错 - Laravel 5.7

ThinkPHP5使用极验验证码

网易易盾是山寨点触验证,还是极验验证?

接口安全接口合法性验证加密验签SIGN 签名规则

使用 VS 2013 和 TFS 2013 构建 vdproj 文件 - 出现构建错误 - 验证时出错。 HRESULT = '8000000A'