2011-11-07 31 views
6

我有一個應用程序使用Spring 3.0.5,JPA2和Hibernate 3.6.7。 Maven處理我的依賴管理。這裏有一個POM摘錄:SpringPersistenceUnitInfo :: AbstractMethodError

<properties> 
    <spring.version>3.0.5.RELEASE</spring.version> 
</properties> 
<dependencies> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
... 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-hibernate3</artifactId> 
    <version>2.0.8</version> 
    <scope>compile</scope> 
     <exclusions> 
     <exclusion> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate</artifactId> 
    </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.6.7.Final</version> 
    </dependency> 
    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>3.6.7.Final</version> 
    <scope>compile</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jpa</artifactId> 
    <version>2.0.8</version> 
    <scope>compile</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.hibernate.java-persistence</groupId> 
    <artifactId>jpa-api</artifactId> 
    <version>2.0-cr-1</version> 
    <scope>compile</scope> 
    </dependency> 
... 

應用構建就好了,但是,試圖加載它時,Tomcat容器抱怨如下:

 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode; 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 

什麼可能會導致這有什麼想法?所有依賴關係看起來都是完整的。

謝謝。

回答

6

您在混合來自Spring 2.x和3.x的工件。

更換的spring-hibernate3spring-jpa舊版本與

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-orm</artifactId> 
    <version>${spring.version}</version> 
    <scope>compile</scope> 
</dependency> 
+0

感謝指出 - 刪除對spring-hibernate3的引用似乎清理了一些東西 – eugene

0

我有完全相同的問題。我是hibernate驗證器(4.2),tomcat 6和spring 3.0.6。但是我也將hibernate從3.2升級到了3.6,但我忘了從classpath中刪除hibernate-entitymanager.jar(這是一箇舊的hibernate jar)。

0

我有一個與Hibernate 4.x,Spring 3.x,JPA 2.x和CXF 2.7.5非常類似的問題。我刪除了在我的maven POM文件中對spring-jpa工件的引用,並插入了推薦的代碼片段。工作魔術!我不再看到這個例外。謝謝!

相關問題