2013-01-08 38 views
0

我有一個播放應用程序(play 2.0.4),它爲所有與數據庫相關的工作(JPA/Hibernate 4.1.7/PostgreSQL)使用Java jar。一切都很順利,直到我意識到我在使用默認連接池,並且偶爾會出現這樣的錯誤,所以我切換到了c3p0。當我這樣做,複製新的jar入戲,我有以下異常:在playframework中使用hibernate 4.1.7和c3p0

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[ExceptionInInitializerError: null]] 
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.4] 
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.4] 
    at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2] 
    at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.4] 
    at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2] 
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2] 
Caused by: java.lang.ExceptionInInitializerError: null 
    at models.AuthenticatedUser$.auth(AuthenticatedUser.scala:67) ~[classes/:na] 
    at controllers.Application$$anonfun$2.apply(Application.scala:25) ~[classes/:na] 
    at controllers.Application$$anonfun$2.apply(Application.scala:24) ~[classes/:na] 
    at play.api.data.Mapping$$anonfun$verifying$2.apply(Form.scala:452) ~[play_2.9.1.jar:2.0.4] 
    at play.api.data.Mapping$$anonfun$verifying$2.apply(Form.scala:451) ~[play_2.9.1.jar:2.0.4] 
    at play.api.data.validation.Constraint.apply(Validation.scala:21) ~[play_2.9.1.jar:2.0.4] 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: persistenceUnit] Unable to build EntityManagerFactory 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:901) ~[hibernate-entitymanager-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57) ~[hibernate-entitymanager-3.5.6-Final.jar:3.5.6-Final] 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) ~[hibernate-jpa-2.0-api.jar:1.0.1.Final] 
    at com.xonami.rest.db.EMFactory.<clinit>(EMFactory.java:29) ~[xonami-api-0.2-SNAPSHOT.jar:na] 
    at models.AuthenticatedUser$.auth(AuthenticatedUser.scala:67) ~[classes/:na] 
    at controllers.Application$$anonfun$2.apply(Application.scala:25) ~[classes/:na] 
Caused by: org.hibernate.HibernateException: Could not instantiate connection provider: org.hibernate.connection.C3P0ConnectionProvider 
    at org.hibernate.connection.ConnectionProviderFactory.initializeConnectionProviderFromConfig(ConnectionProviderFactory.java:178) ~[hibernate-core-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:102) ~[hibernate-core-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51) ~[hibernate-entitymanager-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91) ~[hibernate-core-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163) ~[hibernate-core-3.5.6-Final.jar:3.5.6-Final] 
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159) ~[hibernate-core-3.5.6-Final.jar:3.5.6-Final] 

我曾與包括在劇中庫休眠和C3P0罐試驗文件夾無濟於事(雖然我覺得我把它們裝入我的罐子裏)。我猜測也許玩有一個老版本的c3p0,它是第一個在classpath中?我可以把它拿出來嗎?怎麼樣?其他可能是錯的嗎?

回答

0

根據你的日誌,我認爲你忘了加上hibernate-c3p0依賴,這可以通過編輯project/Build.scala文件中加入:

val appDependencies = Seq(
    "org.hibernate" % "hibernate-c3p0" % "4.1.7.Final" 
    ... 
) 

,或者您也可以將它放在你的lib文件夾中。

+0

我想我完全忘了自從我上次看它以來,如何播放託管依賴項,而我甚至沒有意識到。這清楚了它,謝謝! –

相關問題