2012-02-28 4 views
1

私はHibernate 4とSpring 3.1を使ってWebプロジェクトを開発しようとしています。私は、applicationContenxt.xmlにsessionFactory beanを宣言しました。Spring3.1とHibernate4の設定。クラス[org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider]をロードできません

<session-factory> 
     <!-- Database connection settings --> 
     <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
     <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> 
     <property name="connection.username">****</property> 
     <property name="connection.password">****</property> 
     <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> 

     <!-- 
      Enable c3p0 connection pooling, because hibernate pooling is not 
      prod-ready. Apparently connection.provider_class is needed in 
      hibernate 3+ 
     --> 
     <property name="connection.provider_class"> 
     org.hibernate.connection.C3P0ConnectionProvider</property> 
     <!-- <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> --> 
     <property name="c3p0.max_size">100</property> 
     <property name="c3p0.min_size">1</property> 
     <property name="c3p0.idle_test_period">30</property> 

     <!-- Echo all executed SQL to stdout for debugging --> 
     <property name="show_sql">true</property> 

     <!-- All the entity classes for hibernate to check for annotations here 
--> 
     <mapping class="data.Event" /> 

私はアプリケーションを実行すると:

<bean id="sessionFactory" scope="singleton" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="configLocation" value="classpath:hibernate.cfg.xml" /> 
    </bean> 

私はhibernate.cfg.xmlファイルがあるので、Oracleデータベースを使用します。私は例外を取得:

1543 [Thread-2] ERROR org.springframework.web.context.ContextLoader - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.service.jdbc.connections.spi.ConnectionProvider] 
    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) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    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:563) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:377) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:278) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    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) 

私は春と休止状態への絶対初心者ですと私は問題を解決することができませんでした。

問題について考えている人はいますか?

+0

はあなたがよろしいですhibernateとc3poのすべての依存関係がありますか? – tom

答えて

4

これに変更します(あなたは3を休止参照している、これは休止v4のための正しいクラスです):

<bean id="sessionFactory" class="*org.springframework.orm.hibernate4.LocalSessionFactoryBean*"> 
    <property name="configLocation" value="classpath:hibernate.cfg.xml" /> 
</bean> 

(Mavenを使用している場合)あなたはこれを必要な場合があります

<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-core</artifactId> 
<version>4.0.0.Final</version> 
<type>jar</type> 
<scope>compile</scope> 
</dependency> 
+1

動作しません。私はjava.lang.ClassNotFoundExceptionを持っている:org.springframework.orm.hibernate4.LocalSessionFactoryBean。私は瓶を紛失していますか? – erencan

+0

は確かに – NimChimpsky

+0

のように見えますが、org.springframework.orm-3.1.0.M2.jarを持っています – erencan

関連する問題