2015-10-07 6 views
13

voglio presentarvi chiazza di petrolio al mio progetto di gioco, in modo da aggiungere le seguenti dipendenze per build.sbt:Un legame play.api.db.DBApi è stato già configurato, evoluzioni e l'errore iniettore con il gioco-slick

"com.typesafe.play"   %% "play-slick"    % "1.0.1"  withSources(), 
    "com.typesafe.play"   %% "play-slick-evolutions" % "1.0.1"  withSources(), 

Quindi, quando eseguo una specifica di integrazione per il controller, ho ottenuto la seguente eccezione sia su Intellij IDE che sul test dell'attivatore della riga di comando. Dopo Google ho trovato la soluzione: https://www.playframework.com/documentation/2.4.x/PlaySlickFAQ#A-binding-to-play.api.db.DBApi-was-already-configured

Dopo aver rimosso la dipendenza JDBC, le specifiche di integrazione passato quando ho utilizzando la linea di comando, ma ho ancora lo stesso errore quando ho eseguito il test su Intellij IDE come seguente errore: eccezione incontrato quando si richiama run su una suite nidificato - Impossibile creare iniettore, vedere i seguenti errori:

1) A binding to play.api.db.DBApi was already configured at play.api.db.DBModule.bindings(DBModule.scala:25): 
Binding(interface play.api.db.DBApi to ProviderConstructionTarget(class play.api.db.DBApiProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1). 
    at play.api.db.slick.evolutions.EvolutionsModule.bindings(EvolutionsModule.scala:15): 
Binding(interface play.api.db.DBApi to ConstructionTarget(class play.api.db.slick.evolutions.internal.DBApiAdapter) in interface javax.inject.Singleton) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1) 

1 error 
com.google.inject.CreationException: Unable to create injector, see the following errors: 

1) A binding to play.api.db.DBApi was already configured at play.api.db.DBModule.bindings(DBModule.scala:25): 
Binding(interface play.api.db.DBApi to ProviderConstructionTarget(class play.api.db.DBApiProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1). 
    at play.api.db.slick.evolutions.EvolutionsModule.bindings(EvolutionsModule.scala:15): 
Binding(interface play.api.db.DBApi to ConstructionTarget(class play.api.db.slick.evolutions.internal.DBApiAdapter) in interface javax.inject.Singleton) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1) 

1 error 
    at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466) 
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) 
    at com.google.inject.Guice.createInjector(Guice.java:96) 
    at com.google.inject.Guice.createInjector(Guice.java:73) 
    at com.google.inject.Guice.createInjector(Guice.java:62) 
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126) 
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:93) 
    at play.api.test.FakeApplication.<init>(Fakes.scala:216) 
    at org.scalatestplus.play.OneServerPerSuite$class.app(OneServerPerSuite.scala:152) 

risposta

4

Hai probabilmente aggiunte dipendenza JDBC, che non ha senso se si utilizza chiazza di petrolio per esso. Rimuovilo e funzionerà.

29

Se siete come me, avete qualcosa di simile nel tuo build.sbt

libraryDependencies ++= Seq(
    jdbc, 
    cache, 
    ws, 
    specs2 % Test, 
    "mysql" % "mysql-connector-java" % "5.1.37", 
    "com.typesafe.play" %% "play-slick" % "1.1.1", 
    "com.typesafe.play" %% "play-slick-evolutions" % "1.1.1" 
) 

rimuovere JDBC

libraryDependencies ++= Seq(
    //jdbc, //<<---- this one here 
    cache, 
+0

In realtà, c'è un funzionario [FAQ] (https: // www .playframework.com/documentation/2.5.x/PlaySlickFAQ # A-binding-to-play.api.db.DBApi-era-già-configurato) che descrive questo problema. –

Problemi correlati