验证文件 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 时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“文件上传失败。”使用任何图像上传验证时出错 - Laravel 5.7
使用 VS 2013 和 TFS 2013 构建 vdproj 文件 - 出现构建错误 - 验证时出错。 HRESULT = '8000000A'