Play framework 2.5:ScalikeJDBC:连接池在启动时尚未初始化

时间:2016-08-08 03:41:38

标签: postgresql scala playframework scalikejdbc

升级到2.5版Play后,当我尝试在生产模式下运行项目时,我遇到了这个问题。看来在这个版本中我需要手动初始化池ScalikeJDBC: Connection pool is not yet initialized.(name:'default) 我无法理解我该怎么做。 我已经添加了这个课程:

import play.api.Logger
import scalikejdbc._
import scalikejdbc.config._

class DbInitializer {
    DBs.setupAll()
    Logger.debug("DB initialized")
}

并在我的模块中将其标记为EagerSingleton:

class GlobalModule extends AbstractModule {
  def configure() = {
    bind(classOf[DbInitializer]).asEagerSingleton()
  }
}

现在,当我在生产中运行我的项目时,我看到了:

  

[info] application - 为数据源创建池'default'[info]   p.a.d.DefaultDBApi - 数据库[默认]连接在   jdbc:postgresql:// localhost:5432 / inetshop [debug]应用程序 -   [debug]应用程序 - 数据库初始化   哎呀,无法启动服务器。 com.google.inject.CreationException:   无法创建进样器,请参阅以下错误:

     

1)注入构造函数时出错,java.lang.IllegalStateException:   连接池尚未初始化。(名称:'default)at   controllers.Application(Application.scala:20)。

所以我的初始化程序运行成功但仍然面临这个问题。需要帮助来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,(连接池设置被忽略)不完全相同,但也许有帮助:

我们必须启用scalikejdbc-play-dbapi-adapter: build.sbt: " org.scalikejdbc" %%" scalikejdbc-play-dbapi-adapter" %

并添加到application.conf: play.modules.enabled + =" scalikejdbc.PlayDBApiAdapterModule"