无法将名称'repository:repository'解析为(n)'type definition'组件。

时间:2012-09-23 08:00:15

标签: xml spring spring-data-jpa

我在尝试集成Spring Data时遇到此错误。完整的堆栈跟踪是

nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/data/jpa/spring-jpa.xsd; lineNumber: 18; columnNumber: 48; src-resolve: Cannot resolve the name 'repository:repository' to a(n) 'type definition' component.
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)

XML文件是

<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="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.xsd">
    <repositories base-package="com.interviewedonline.poc.repositories" />

6 个答案:

答案 0 :(得分:2)

我在XSD文件中遇到了同样的问题。

我已将Spring数据Data Commons 1.4更改为Spring Data Commons 1.3.2,现在一切正常......

答案 1 :(得分:1)

您需要先定义Spring Data JPA XML namespace

<?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: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.xsd">

    <jpa:repositories base-package="com.interviewedonline.poc.repositories" />

</beans>

或者,如果您想在示例中使用默认的XML命名空间:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/data/jpa"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:beans="http://www.springframework.org/schema/beans"
        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.xsd">

    <repositories base-package="com.interviewedonline.poc.repositories" />

</beans:beans>

答案 2 :(得分:1)

我有同样的错误。添加spring-data-commons-core似乎可以解决这个问题。

答案 3 :(得分:1)

我添加了这个jar spring-data-commons-core-1.2.1.RELEASE

在Pom.xml中添加了以下条目

<dependency>
     <groupId>org.springframework.data</groupId>
     <artifactId>spring-data-commons-core</artifactId>
     <version>1.2.1.RELEASE</version>
</dependency>

在jpa配置文件中,在xsi:schemaLocation下添加了以下条目 http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd

答案 4 :(得分:1)

我最近在更新旧项目的依赖项时遇到此错误。我遇到的问题是这种依赖:

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-commons-core</artifactId>
  <version>1.5.1.RELEASE</version>
</dependency>

已重命名,现在正确

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-commons</artifactId>
  <version>1.8.1.RELEASE</version>
</dependency>

正如我声明 spring-data-commons-core spring-data-commons 是data-mongodb的传递依赖,我最终得到了两个罐子和类加载器使用的是不正确的spring-data-commons-core。

答案 5 :(得分:0)

在一些Spring .jar文件中,您可以找到META-INF文件夹。您将在该文件夹中找到spring.handlers和spring.schemas。 spring-data-commons- .jar确实有。如果您使用Maven,您应该在src / main / resources下创建META-INF文件夹,并将spring. data-commons - .jar中的spring.handlers,spring.schemas的内容追加到spring.handler中, spring.schemas。

祝你好运!