1

我遇到了一个使用 spring data jpa 运行项目的异常


org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 18 in XML document from class path resource [META-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/data/jpa/spring-jpa.xsd; lineNumber: 18; columnNumber: 51; src-resolve: Cannot resolve the name 'repository:repositories' to a(n) 'type definition' component.

我阅读了许多文档和博客,我认为这可能是由于 spring data jpa 和 spring data commons 包版本不兼容造成的。

现在我正在使用

  • spring-data-commons-core-1.4.1.Release
  • spring-data-commons-1.10.0.release
  • 弹簧数据-jpa-1.8.0。

关于版本控制以消除此类错误的任何建议?

另外,我想就如何使这种版本控制更容易(任何网站、文档或工具)征求意见。提前感谢您的建议。

下面是我使用的命名空间

<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:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xmlns:repository="http://www.springframework.org/schema/data/repository"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.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/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd">

repository:repository不是来自我的applicationContext.xml. 我确实使用jpa:repository

<jpa:repositories base-package="com.canreef.calendar"/>
4

1 回答 1

0

我在 spring-repository.xsd 中找到了这个根源在 spring-jpa.xsd 中有一行与 repository:auditing-attributes 的引用:

<xsd:element name="auditing">
        <xsd:annotation>
            <xsd:appinfo>
                <tool:annotation>
                    <tool:exports type="org.springframework.data.jpa.domain.support.AuditingEntityListener" />
                    <tool:exports type="org.springframework.data.auditing.AuditingHandler" />
                </tool:annotation>
            </xsd:appinfo>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:attributeGroup ref="repository:auditing-attributes" />
        </xsd:complexType>
    </xsd:element>

在 spring-repository.xsd 中有 bean:

-<xsd:attributeGroup name="auditing-attributes">


-<xsd:attribute name="auditor-aware-ref">


-<xsd:annotation>


-<xsd:documentation>

<![CDATA[ References a bean of type AuditorAware to represent the current principal. ]]>

</xsd:documentation>


-<xsd:appinfo>


-<tool:annotation kind="ref">

<tool:assignable-to type="org.springframework.data.domain.AuditorAware"/>

</tool:annotation>

</xsd:appinfo>

</xsd:annotation>

</xsd:attribute>


...omitted...

</xsd:attributeGroup>

因此,这应该是由于无法获取 repository.xsd 造成的。

于 2015-05-29T09:21:48.093 回答