我在Eclipse中有一个maven-spring项目,我在我的一个spring语境中有这个恼人的错误信息:
引用文件包含错误(jar:file:/M2_HOME/repository/org/springframework/spring-beans/3.1.2.RELEASE/spring-beans-3.1.2.RELEASE.jar!/ org / springframework / beans / factory / xml /spring-tool-3.1.xsd)。有关更多信息,请右键单击“问题视图”中的消息,然后选择“显示详细信息...”
演出的秘密导致了这个:
我使用spring-data-jpa 1.2.0.RELEASE,其余的春季罐子是3.1.3.RELEASE。关于spring-data-commons-core - 我甚至没有依赖于我的pom中的这个jar,但我可以在我的m2存储库中看到它以及spring-data-commons-parent和版本1.4.0.RELEASE ,我不知道为什么(也许那些是spring-data-jpa的一部分?)。
我的应用上下文架构:
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">
我不明白为什么我一直收到这个错误。基本上它没有任何影响,应用程序编译,部署和运行就好了,这只是Eclipse中令人讨厌的红色错误标记让我疯狂:)
我最近在最新的Eclipse(Kepler)中遇到了类似的问题,并通过在Preferences> XML> XML Files> Validation中禁用“Honor all XML schema locations”选项来修复它。它禁用对指向不同模式位置的相同名称空间的引用的验证,仅对正在验证的XML文件中找到的第一个名称空间进行验证。此选项来自Xerces库。
WTP Doc:http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/sourceediting.php
Xerces Doc:http://xerces.apache.org/xerces2-j/features.html#honour-all-schemaLocations
如果您没有控制这些文件,因为这些文件可能是其他项目的一部分,并且您无权进行任何更改,那么您可以通过执行首选项 - > XML - > XML文件来绕过eclipse中的这些错误 - >验证 - >引用文件包含错误 - >选择忽略选项。
并且让项目得到验证,错误消息将消失。
用这个:
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
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/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"
我也遇到了这个问题并通过从XSD名称中删除版本部分来修复它。
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd to http://www.springframework.org/schema/beans/spring-beans.xsd
版本较少XSD映射到应用程序中使用的框架的当前版本。
我通过做三件事来解决它:
<repository>
<id>spring-milestone</id>
<name>Spring Maven MILESTONE Repository</name>
<url>http://repo.springsource.org/libs-milestone</url>
</repository>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx"
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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
我希望这有帮助。
我使用spring-data-jpa-1.3做的是向xsd添加一个版本并将其降低到1.2。然后错误消息消失。像这样
<beans
xmlns="http://www.springframework.org/schema/beans"
...
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
...
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">
似乎它固定为1.2但后来再次出现在1.3中。
有时spring config xml文件在下次eclipse打开时效果不佳。
它显示了由模式定义引起的xml文件中的错误,无论重新打开eclipse还是清理项目都不起作用。
但试试吧!
右键单击spring config xml文件,然后选择
validate
。
过了一会儿,错误就消失了,eclipse告诉你这个文件没有错误。
真是笑话...
我最近遇到了与Spring 4.0相同的问题。
这是由于spring-beans-4.0.xsd
和spring-context-4.0.xsd
的名字发生碰撞造成的。打开spring-context-4.0.xsd
你可以看到spring-beans-4.0.xsd
的输入如下:
<xsd:import namespace="http://www.springframework.org/schema/beans"
schemaLocation="http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"/>
这些名称的冲突使Eclipse抱怨“......模式不能包含两个具有相同名称的全局组件......”
一个值得注意的方面是我没有使用Eclipse Kepler SR2,而是Eclipse Luna SR1,比较两个关于XML验证的偏好,它们是相同的。
它是通过从xsi:schemaLocation属性中删除spring-context-4.0.xsd来解决的:
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
在这之后一切都像预期的那样工
我最近遇到了与JPA-1.3相同的问题
在我使用显式tools.xsd链接之前,没有任何工作
xsi:schemaLocation=" ...
http://www.springframework.org/schema/tool
http://www.springframework.org/schema/tool/spring-tool-3.2.xsd
... ">
像这样:
<?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:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/tool
http://www.springframework.org/schema/tool/spring-tool-3.2.xsd
">
@forhas和@HRgiger的确对我有用。我使用spring-data-mongodb
而不是jpa
。
但是,对于mongodb绑定,您不应该删除mongodb引用xsd的版本,只需将其保留为version:http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
。应删除context
和beans
版本。
我通过更新版本号删除了此错误
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
到4.3因为我已经在pom中升级了弹簧版本为4.3.7.RELEASE
引用的文件包含错误(http://www.springframework.org/schema/context/spring-context-3.0.xsd)
我遇到这个问题,当我配置dispatcher-servlet.xml时,你可以删除这个:
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
从你的xml中你也可以按照步骤转到窗口 - >首选项 - >验证 - >和未经检查的XML验证器和XML模式验证器。