2016-04-08 40 views
0

Ben oyun kayganPlay Framework 2.5 Kaygan + DI

lazy val root = (project in file(".")).enablePlugins(PlayScala) 

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(
    cache, 
    ws, 
    "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.0-RC1" % Test, 
    "com.madgag.spongycastle" % "core" % "1.53.0.0", 
    "org.flywaydb" %% "flyway-play" % "3.0.0", 
    "com.typesafe.play" %% "play-slick" % "2.0.0", 
    "com.typesafe.play" %% "play-slick-evolutions" % "2.0.0" 
) 

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases" 


fork in run := false 

ile Play Framework 2.5 kullanarak Ve oyun yetkilisinin önerilir DI ile temel CRUD sınıfını uygulamak çalışıyorum.

trait FooService { 
    def findById(id: Long) 

    final class FooTable(tag: Tag) extends Table[FooModel](tag,"foo"){ 
    def id = column[Long]("id") 
    //.... 
    } 
} 

@Singleton 
class FooServiceImpl @Inject()(protected val dbConfigProvider: DatabaseConfigProvider) extends FooService with HasDatabaseConfigProvider[JdbcProfile] { 
    import dbConfig.driver.api._ 

    private lazy val bars = TableQuery[FooTable] 

    def findById(id: Long) = db.run(bars.filter{ x => x.id === id}.result) 
    //.... 
} 

Module.scala

override def configure() = { 
    //.... 
    bind(classOf[FooService]).to(classOf[FooServiceImpl]) 
    //.... 
} 

dosyasına koyarak ben slick.dbs.default.db.dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" eklerseniz kaybolur alır

hata yukarıdaki ayarı kodlarla ilgili bir hata Caused by: java.lang.RuntimeException: driverClassName specified class 'com.mysql.jdbc.Driver' could not be loaded olsun

slick.dbs.default.driver = "slick.driver.MySQLDriver$" 
slick.dbs.default.db.driver = com.mysql.jdbc.Driver 
slick.dbs.default.db.url = "jdbc:mysql://localhost/foo" 
slick.dbs.default.db.user = "root" 
slick.dbs.default.db.password = "password" 

/Ancak, application.conf yerine, bunun yerine DB Timeout istisnası alıyorum.

Diğer play2.4 projem (DI olmayan), aynı yapılandırma ayarına sahip bir sunucuya bağlanabileceğinden ve ayrıca sunucuya konsolda bağlanabileceğinden, Db yapılandırmasının doğru olduğundan eminim.

Sorunun nedenini bilmiyorum. Nerede yanlış yapıyorum?

Şimdiden teşekkürler.

+0

Ayrıca, build.sbt dosyanızı da gönderin. – marcospereira

+0

@marcospereira güncellendi. – suish

cevap

2

Sen MySQL sürücü bağımlılık eklemeniz gerekir: Bir tane daha gerekirse

Tabii
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.38" 

bu sürümü (son) Tamam olup olmadığını kontrol veya.

+0

ofc, Orada olmalı. aptal soruyu cevapladığın için teşekkürler. – suish