Playプロジェクトにslickを導入したいので、build.sbtに次の依存関係を追加します。
"com.typesafe.play" %% "play-slick" % "1.0.1" withSources(),
"com.typesafe.play" %% "play-slick-evolutions" % "1.0.1" withSources(),
次に、コントローラーの統合仕様を実行すると、Intellij IDEとコマンドラインアクティベーターテストの両方で次の例外が発生しました。Googleの後で解決策を見つけました: https:// www。 playframework.com/documentation/2.4.x/PlaySlickFAQ#A-binding-to-play.api.db.DBApi-was-already-configured
Jdbc依存関係を削除した後、コマンドラインを使用すると統合仕様に合格しましたが、Intellij IDE)でテストを実行すると、次のエラーと同じエラーが発生しました:呼び出し時に例外が発生しましたネストされたスイートで実行-インジェクターを作成できません。次のエラーを参照してください。
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)
あなたが私のようなら、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"
)
jdbcを削除します
libraryDependencies ++= Seq(
//jdbc, //<<---- this one here
cache,
Jdbcに依存関係を追加した可能性がありますが、slickを使用しても意味がありません。それを削除すると、動作します。