2014-07-23 40 views
0

我使用spring 3.0.5.RELEASE和hibernate hibernate-core版本3.6.8.Final與JSF 在運行我的服務器tomcat 7我有這樣的例外org.springframework.beans.factory.BeanCreationException:創建名爲'transactionManager'的Bean的錯誤

Grave: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [application-context.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getConnectionProvider()Lorg/hibernate/service/jdbc/connections/spi/ConnectionProvider; 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getConnectionProvider()Lorg/hibernate/service/jdbc/connections/spi/ConnectionProvider; 
    at org.springframework.orm.hibernate4.SessionFactoryUtils.getDataSource(SessionFactoryUtils.java:90) 
    at org.springframework.orm.hibernate4.HibernateTransactionManager.afterPropertiesSet(HibernateTransactionManager.java:252) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483) 
    ... 21 more 

這是我的應用程序的context.xml在我的項目的Maven:

豆ID = 「數據源」 類= 「org.apache.commons.dbcp.BasicDataSource」 >
.........

  </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      </props> 
     </property> 
    </bean> 
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 
    <tx:annotation-driven transaction-manager="transactionManager" /> 
    <context:annotation-config/> 
    <context:component-scan base-package="fr.ensa.agadir"/> 

</beans> 
+0

您有圖書館問題。檢查你的版本。 –

回答

0

你有一個Spring版本,這不是你的Hibernate的版本兼容。

如果您正在使用Maven運行

mvn dependency:tree 

,並尋找休眠罐的所有地方。

通常這是因爲您的類路徑中同時包含Hibernate 4和Hibernate 3 jar。

Bonne的機會!

+0

哪裏有Maven run.to執行mvn依賴關係:樹 – user3574144

+0

我認爲他沒有使用MAVEN。 –

+0

不,我正在使用maven項目? – user3574144

1

如果你在你的類路徑中休眠4.0罐子,那麼你應該使用org.springframework.orm.hibernate4.LocalSessionFactoryBean代替org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

如果你的classpath沒有休眠4.0罐子然後刪除所有休眠罐子和添加Hibernate 4.0罐子和使用org.springframework .orm.hibernate4.LocalSessionFactoryBean

+0

我有這個在我的pom.xml \t \t \t org.hibernate作爲 \t \t \t 休眠核心 \t \t \t 3.6.8.Final \t \t \t 罐子 \t \t \t 編譯 \t \t user3574144

+0

相應地更改版本和工件ID或在WEB-INF/lib中手動添加JARS –

相關問題