2016-01-22 68 views
0

我是新来的流利和我正在使用版本3.1.1以及playframework 2.4.6。我在文档http://slick.typesafe.com/doc/3.1.1/database.html中遵循本指南。我得到的错误是Slick 3配置ProvisionException连接数据库

***ProvisionException: Unable to provision, see the following errors: 

1) Error injecting constructor, java.lang.RuntimeException: java.lang.ClassNotFoundException: 
org.postgresql.ds.PGSimpleDataSource 
    at controllers.Application.<init>(Application.scala:12) 
    while locating controllers.Application 
    for parameter 1 at router.Routes.<init>(Routes.scala:31) 
    while locating router.Routes 
    while locating play.api.inject.RoutesProvider 
    while locating play.api.routing.Router 
1 error*** 

这是我第一次有在SBT我把这个

libraryDependencies ++= Seq(
    "com.typesafe.slick" %% "slick" % "3.1.1", 
    "org.slf4j" % "slf4j-nop" % "1.6.4" 
) 

然后在我的Application.Conf我把这个

mydb = { 
    dataSourceClass = org.postgresql.ds.PGSimpleDataSource 
    properties = { 
    databaseName = "mydatabasename" 
    user = "postgres" 
    password = "mypassword" 
    } 
    numThreads = 10 
} 

后来总算在我的控制器中,我只有连接字符串 程序包控制器

import javax.sql.DataSource 

import org.mindrot.jbcrypt.BCrypt 
import play.api._ 
import play.api.mvc._ 
import slick.driver.PostgresDriver.api._ 
import scala.concurrent.ExecutionContext.Implicits.global 


class Application extends Controller { 

    val db = Database.forConfig("mydb") 
    try { 
    // ... 
    } finally db.close() 




    def index = Action { 

    Ok("My First Controller") 
    } 

} 

正如你所看到的,我把Postgres的驱动程序,而不是H2,因为我正在使用postgres和那些凭据是正确的和验证。

回答

1

您需要将slick-hikaricp和postgresql驱动程序依赖项添加到build.sbt中。

"com.typesafe.slick" %% "slick-hikaricp" % "3.1.1", 
    "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" 

如果你是新的光滑,我想建议你应该使用光滑的plugin。请看看玩游戏的光辉samples

+0

非常感谢 – user1591668