mysqlに接続できません。
playでScalikeJDBCを使いdocker上のmysqldbに接続できません。
エラーメッセージ
Unexpected exception CreationException: Unable to create injector, see the following errors: 1) No implementation for play.api.db.DBApi was bound. while locating play.api.db.DBApi for the 4th parameter of play.api.db.evolutions.ApplicationEvolutionsProvider.<init>(EvolutionsModule.scala:52) at play.api.db.evolutions.EvolutionsModule.<init>(EvolutionsModule.scala:23): Binding(class play.api.db.evolutions.ApplicationEvolutions to ProviderConstructionTarget(class play.api.db.evolutions.ApplicationEvolutionsProvider) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4) 2) No implementation for play.api.db.DBApi was bound. while locating play.api.db.DBApi for the 1st parameter of play.api.db.evolutions.DefaultEvolutionsApi.<init>(EvolutionsApi.scala:91) at play.api.db.evolutions.EvolutionsModule.<init>(EvolutionsModule.scala:22): Binding(interface play.api.db.evolutions.EvolutionsApi to ConstructionTarget(class play.api.db.evolutions.DefaultEvolutionsApi)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4) 2 errors No source available, here is the exception stack trace: ->com.google.inject.CreationException: Unable to create injector, see the following errors: 1) No implementation for play.api.db.DBApi was bound. while locating play.api.db.DBApi for the 4th parameter of play.api.db.evolutions.ApplicationEvolutionsProvider.<init>(EvolutionsModule.scala:52) at play.api.db.evolutions.EvolutionsModule.<init>(EvolutionsModule.scala:23): Binding(class play.api.db.evolutions.ApplicationEvolutions to ProviderConstructionTarget(class play.api.db.evolutions.ApplicationEvolutionsProvider) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4) 2) No implementation for play.api.db.DBApi was bound. while locating play.api.db.DBApi for the 1st parameter of play.api.db.evolutions.DefaultEvolutionsApi.<init>(EvolutionsApi.scala:91) at play.api.db.evolutions.EvolutionsModule.<init>(EvolutionsModule.scala:22): Binding(interface play.api.db.evolutions.EvolutionsApi to ConstructionTarget(class play.api.db.evolutions.DefaultEvolutionsApi)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$4) 2 errors com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543) com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159) com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106) com.google.inject.Guice.createInjector(Guice.java:87) com.google.inject.Guice.createInjector(Guice.java:78) play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:200) play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:155) play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21) play.core.server.DevServerStart$$anon$1.$anonfun$reload$3(DevServerStart.scala:189) play.utils.Threads$.withContextClassLoader(Threads.scala:21) play.core.server.DevServerStart$$anon$1.reload(DevServerStart.scala:181) play.core.server.DevServerStart$$anon$1.get(DevServerStart.scala:141) play.core.server.AkkaHttpServer.handleRequest(AkkaHttpServer.scala:296) play.core.server.AkkaHttpServer.$anonfun$createServerBinding$1(AkkaHttpServer.scala:186) akka.stream.impl.fusing.MapAsync$$anon$30.onPush(Ops.scala:1261) akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:541) akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:423) akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:624) akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:501) akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:599) akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:768) akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:783) akka.actor.Actor.aroundReceive(Actor.scala:533) akka.actor.Actor.aroundReceive$(Actor.scala:531) akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:690) akka.actor.ActorCell.receiveMessage(ActorCell.scala:573) akka.actor.ActorCell.invoke(ActorCell.scala:543) akka.dispatch.Mailbox.processMailbox(Mailbox.scala:269) akka.dispatch.Mailbox.run(Mailbox.scala:230) akka.dispatch.Mailbox.exec(Mailbox.scala:242) java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
build.sbt
scala
1name := """db""" 2organization := "com.example" 3 4version := "1.0-SNAPSHOT" 5 6lazy val root = (project in file(".")).enablePlugins(PlayScala) 7 8scalaVersion := "2.13.1" 9 10libraryDependencies += guice 11libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test 12 13// Adds additional packages into Twirl 14//TwirlKeys.templateImports += "com.example.controllers._" 15 16// Adds additional packages into conf/routes 17// play.sbt.routes.RoutesKeys.routesImport += "com.example.binders._" 18 19libraryDependencies += jdbc 20libraryDependencies += evolutions 21libraryDependencies ++= Seq( 22 "com.h2database" % "h2" % "1.4.200", // your jdbc driver here 23 "org.scalikejdbc" %% "scalikejdbc" % "3.4.0", 24 "org.scalikejdbc" %% "scalikejdbc-config" % "3.4.0", 25 "org.scalikejdbc" %% "scalikejdbc-play-initializer" % "2.8.0-scalikejdbc-3.4" 26) 27libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.36" 28
###application.conf
# Database configuration # ~~~~~ # You can declare as many datasources as you want. # By convention, the default datasource is named `default` db.default.driver="com.mysql.jdbc.Driver" db.default.url="jdbc:mysql://localhost:3306/test" db.default.username="root" db.default.password="mysql" # ScalikeJDBC original configuration #db.default.poolInitialSize=10 #db.default.poolMaxSize=10 #db.default.poolValidationQuery= scalikejdbc.global.loggingSQLAndTime.enabled=true scalikejdbc.global.loggingSQLAndTime.singleLineMode=false scalikejdbc.global.loggingSQLAndTime.logLevel=debug scalikejdbc.global.loggingSQLAndTime.warningEnabled=true scalikejdbc.global.loggingSQLAndTime.warningThresholdMillis=5 scalikejdbc.global.loggingSQLAndTime.warningLogLevel=warn play.modules.enabled += "scalikejdbc.PlayModule" # scalikejdbc.PlayModule doesn't depend on Play's DBModule play.modules.disabled += "play.api.db.DBModule"
試したこと
importし直し,
libraryDependencies += jdbcから
libraryDependencies += javaJdbcに変更しましたが変化なし。
Play can't find play.db.DBModule on the classpath
上記の記事を参考に
補足情報(FW/ツールのバージョンなど)
環境
os:catalina 10.15.3
scala:2.13.1
play:2.8.0
回答1件
あなたの回答
tips
プレビュー