升级到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)。
所以我的初始化程序运行成功但仍然面临这个问题。需要帮助来解决这个问题。
答案 0 :(得分:0)
我遇到了类似的问题,(连接池设置被忽略)不完全相同,但也许有帮助:
我们必须启用scalikejdbc-play-dbapi-adapter: build.sbt: " org.scalikejdbc" %%" scalikejdbc-play-dbapi-adapter" %
并添加到application.conf: play.modules.enabled + =" scalikejdbc.PlayDBApiAdapterModule"