2011-11-07 8 views
6

मेरे पास स्प्रिंग 3.0.5, जेपीए 2 और हाइबरनेट 3.6.7 का उपयोग करके एक एप्लिकेशन है। मेवेन ने मेरे निर्भरता प्रबंधन को संभाला है।SpringPersistenceUnitInfo :: AbstractMethodError

 
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) 

यह क्या कारण हो सकता है पर कोई विचार:

<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> 
... 

आवेदन ठीक है, तथापि, जब यह लोड करने का प्रयास, बिलाव कंटेनर निम्नलिखित के बारे में शिकायत बनाता है: यहाँ एक पोम अंश है? सभी निर्भरता बरकरार दिखती है।

धन्यवाद।

उत्तर

6

आप वसंत 2.x और 3.x से कलाकृतियों को मिश्रित कर रहे हैं।

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

यह इंगित करने के लिए धन्यवाद कि वसंत-हाइबरनेट 3 के संदर्भ को हटाने से चीज़ें साफ़ हो जाती हैं – eugene

0

मैं बिल्कुल वैसा ही समस्या थी के साथ spring-hibernate3 और spring-jpa के पुराने संस्करणों को बदलें। मैं हाइबरनेट सत्यापनकर्ता (4.2), टॉमकैट 6 और वसंत 3.0.6 था। लेकिन मैंने 3.2 से 3.6 तक हाइबरनेट को अपग्रेड किया, लेकिन मैं क्लासपाथ से hibernate-entitymanager.jar (जो एक पुराना हाइबरनेट जार है) को हटाना भूल गया।

0

मुझे हाइबरनेट 4.x, स्प्रिंग 3.x, जेपीए 2.x, और सीएक्सएफ 2.7.5 के साथ एक बहुत ही समान समस्या थी। मैंने अपने मैवेन पीओएम फ़ाइल में वसंत-जेपीए आर्टिफैक्ट के संदर्भ को हटा दिया, और अपनी अनुशंसित स्निपेट डाली। काम किया जादू! अब मैं अपवाद नहीं देखता हूं। धन्यवाद!