我有一个项目使用Spring(context,transaction,apect)4.1.6.RELEASE和spring-data-jpa 1.8.0.RELEASE并遇到奇怪的错误,假设是由xsd验证引起的。但是,我无法确定原因。奇怪的是,项目运行正常,我的所有bean都被正确识别。
我正在使用Eclipse luna和Spring Tools Suite插件
我从applicationContext.xml中删除了所有内容,除了" jpa:"引起问题的线。 xml已使用STS插件创建。
我尝试从xsds中删除版本号,但没有成功。
答案 0 :(得分:2)
我前段时间遇到同样的问题,所有错误都是由jpa引起的 我将jpa配置移动到新的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
default-destroy-method="destroy"
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-4.1.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.8.xsd">
<context:component-scan base-package="com.some.validator" />
<context:component-scan base-package="com.some.security.rest" />
<jpa:repositories base-package="com.some.repository.path"
entity-manager-factory-ref="entityManagerFactory" />
</beans>
一些maven进口:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.8.2.RELEASE</version>
</dependency>
和spring框架版本
<org.springframework-version>4.1.7.RELEASE</org.springframework-version>
尝试清理项目并使用maven
更新它答案 1 :(得分:1)
我遇到了与你相同的问题,它来自xsd文件的版本。特别是,当我删除spring Context XSD版本时,问题就消失了。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
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/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/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<jpa:repositories base-package="com.app.repositories" />
</beans>
该XML文件不会为我生成任何验证错误。
干杯,
灵光
答案 2 :(得分:1)
为了解决这些XML验证问题,您可以尝试完全删除版本符号,如下所示,并让Spring加载通用架构位置。
<?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/schem...ring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schem...ng-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/schem...spring-jpa.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
包含通用或版本编辑的XSD
架构位置不会对应用程序行为产生不同的结果。此外,尝试重新组织pom.xml
并确保使用正确的版本解决了瞬态依赖关系。
这个决议的一个奇怪的部分是它在很少的应用程序中对我有用,但在我得到同样错误的其他应用程序中无法工作。对我来说,有时候将版本编辑XSDs
更改为通用版,然后再将其更改回版本编辑版。 Eclipse Luna- tic 行为!
PS:没有针对Eclipse爱好者的冒犯。