升级到 Play 的 2.5 版本后,当我尝试在生产模式下运行项目时遇到了这个问题。似乎在这个版本中我需要手动初始化池ScalikeJDBC:连接池尚未初始化。(名称:'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] 应用程序 - 为数据源“默认”创建池 [info] padDefaultDBApi - 数据库 [默认] 连接在 jdbc:postgresql://localhost:5432/inetshop [debug] 应用程序 - [debug] 应用程序 - 数据库已初始化糟糕,无法启动服务器。com.google.inject.CreationException: 无法创建注入器,看到如下错误:
1) 注入构造函数时出错,java.lang.IllegalStateException: Connection pool is not yet initialized.(name:'default) at controllers.Application.(Application.scala:20)
所以我的初始化程序成功运行但仍然面临这个问题。需要帮助来解决这个问题。