2013-04-29 91 views
10

我的hibernate.cfg.xml我不能運行C3P0ConnectionProvider

<property name="connection.driver_class">org.postgresql.Driver</property> 
     <property name="show_sql">true</property> 
     <property name="connection.url">jdbc:postgresql://localhost:5432/pirates</property> 
     <property name="connection.username">postgres</property> 
     <property name="connection.password">mmm888</property> 

     <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> 
     <property name="show_sql">false</property> 
     <property name="hbm2ddl.auto">update</property> 
     <property name="current_session_context_class">thread</property> 

     <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
     <property name="hibernate.c3p0.min_size">5</property> 
     <property name="hibernate.c3p0.max_size">200</property> 
     <property name="hibernate.c3p0.timeout">300</property> 
     <property name="hibernate.c3p0.max_statements">50</property> 
     <property name="hibernate.c3p0.idle_test_period">3000</property> 
     <property name="hibernate.generate_statistics">true</property> 

我的圖書館:

hibernate-commons-annotations-4.0.1.Final.jar 
hibernate-core-4.1.10.Final.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
hibernate-validator-4.2.0.Final.jar 
jbossjta-4.16.4.Final.jar 
jboss-logging-3.1.0.GA.jar 
jboss-transaction-api_1.1_spec-1.0.0.Final.jar 
openjdk-6-b14.jar 
validation-api-1.0.0.GA.jar 
hibernate-c3p0-4.1.10.Final.jar 

和我的錯誤:

29.04.2013 14:02:43 org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator getConfiguredConnectionProviderName 
WARN: HHH000208: org.hibernate.connection.C3P0ConnectionProvider has been deprecated in favor of org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider; that provider will be used instead. 
29.04.2013 14:02:43 org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator instantiateExplicitConnectionProvider 
INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider 
Failed to create sessionFactory object.org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.service.jdbc.connections.spi.ConnectionProvider] 
29.04.2013 14:02:43 org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [request] in context with path [/Pirates] threw exception [Servlet execution threw an exception] with root cause 
java.lang.ClassNotFoundException: Could not load requested class : org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider 
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138) 
    at org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.instantiateExplicitConnectionProvider(ConnectionProviderInitiator.java:189) 
    at org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.initiateService(ConnectionProviderInitiator.java:114) 
    at org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator.initiateService(ConnectionProviderInitiator.java:54) 
    at org.hibernate.service.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:69) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:176) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:150) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89) 
    at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) 
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71) 
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2277) 
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2273) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742) 
    at hibernate.Hibernate.initFactory(Hibernate.java:39) 
    at hibernate.Hibernate.getFactory(Hibernate.java:23) 
    at hibernate.Hibernate.openSession(Hibernate.java:49) 
    at action.Action.init(Action.java:96) 
    at action.Action.performAction(Action.java:65) 
    at servlets.RequestHandlerServlet.service(RequestHandlerServlet.java:39) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
+0

看起來像是類路徑問題,你是否記得將hibernate jar部署到你的web-inf文件夾?如果你正在使用eclipse – RuntimeError 2013-04-29 11:32:04

+0

@ RuntimeError,它就在「部署程序集」頁面中 - 我不知道如何做到這一點,請幫助 – 2013-04-29 11:34:29

+0

在Eclipse中:右鍵單擊你的項目 - >屬性 - >部署程序集 - >添加 - >選擇hibernate jars - >部署路徑「/ WEB-INF/lib」或「../」如果你沒有做一個webproject – RuntimeError 2013-04-29 11:37:42

回答

11

我有同樣的問題,希望我的解決方案也適合你:

1:既然你是我們荷蘭國際集團休眠-c3p0-4.1.10.Final.jar,你provider_class應該是:

<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 

Error Caused by: org.hibernate.HibernateException: Could not instantiate connection provider [org.connection.C3P0ConnectionProvider]

此外,還要確保你包括 c3p0-0.9.1.jar和休眠,C3P0 -4.2.1.Final.jar(應該在同一個文件夾「\ hibernate-release-4.2.1.Final \ lib \ optional \ c3p0 \」)

我結束了下載最新的Hibernate發行版(4.2。 1)http://planet.jboss.org/post/hibernate_orm_4_2_1_final_and_4_1_12_final_released

and updating在我的項目中的所有休眠相關罐子得到它正常工作,因爲Eclipse中的下載鏈接只有在3.6.0 Final版(JBoss的休眠 - http://download.jboss.org/jbosstools/updates/stable/

5

c3p0

添加上述lirary jar文件在你的hibernate distribution lib目錄中找到