我一直在将我的应用程序从Spring 4.0迁移到spring 3.1.0。 我浪费了整整一天的时间。找不到确切的jar依赖关系&他们的版本。如果这里有人可以就Hibernate&的版本提出建议,那将会非常有帮助。 JPA罐我应该用于Spring 3.1.0版(或者任何人都会赞赏)。
提前致谢。
我尝试迁移的事情:
现在尝试更改jpa的jars版本时:
a)将spring-data-jpa-1.6.0.RELEASE更改为spring-data-jpa-1.2.0.RELEASE
b)将spring-data-commons-1.9.2.RELEASE更改为spring-data-commons-1.4.0.RELEASE。
现在我得到错误:
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class [org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler] for namespace [http://www.springframework.org/schema/data/jpa]: problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor
applicationContext.xml ( Spring配置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:p="http://www.springframework.org/schema/p"
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:mvc="http://www.springframework.org/schema/mvc"
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-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-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.xsd">`
答案 0 :(得分:0)
这应该适合春季3.1.0
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
答案 1 :(得分:0)
对不起讲道,但你真的应该花时间升级那些过时的插件(或报废),而不是降级到古老版本的Spring(或任何相关的库)。已经添加了无数的改进,包括安全相关的补丁。
回答实际问题:使用Maven。
直接在Maven上创建应用程序或使用Maven poms中的信息。
spring-orm
的最新3.1.x版本是3.1.4。这是人工制品的pom:http://central.maven.org/maven2/org/springframework/spring-orm/3.1.4.RELEASE/spring-orm-3.1.4.RELEASE.pom
对于hibernate,它指定
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.0.Final</version>
<optional>true</optional>
</dependency>
如果您正在使用Maven或类似的东西,这应该足以引入兼容版本的Hibernate以及所有必需的依赖项,包括JPA API。如果您不使用Maven,请设置一个具有该依赖关系的小型maven项目。使用依赖项插件列出所有依赖项,包括其版本的瞬态依赖项:
mvn dependency:tree