После обновления до версии 2.5 версии Play я столкнулся с этой проблемой, когда пытаюсь запустить проект в режиме производства. Кажется, что в этой версии мне нужно инициализировать пул вручную ScalikeJDBC: Connection pool is not yet initialized.(name:'default) Я не могу понять, как это сделать. Я добавил этот класс:Play framework 2.5: ScalikeJDBC: пул подключений еще не инициализирован при запуске
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()
}
}
Теперь, когда я запускаю свой проект в производство, я вижу:
[информация ] application - Создание пула для datasource 'default' [info] padDefaultDBApi - База данных [по умолчанию] подключена к jdbc: postgresql: // localhost: 5432/inetshop [debug] application - [debug] application - DB initialized К сожалению, не удается запустить сервер. com.google.inject.CreationException: Невозможно создать инжектор, см следующие ошибки:
1) Ошибка инъекционного конструктор, java.lang.IllegalStateException:. пула соединений не инициализированы (имя: "по умолчанию) в Контроллеры. Применение. (Application.scala: 20)
Так что мой Инициализатор успешно работает, но все еще сталкивается с этой проблемой. Нужна помощь, чтобы исправить это.
Что 'DBS. setupAll() 'делает? – marcospereira
Здесь http://scalikejdbc.org/documentation/configuration.html#scalikejdbc-config они сказали: «После простого вызова scalikejdbc.config.DBs.setupAll() создаются пулы подключений». – user2975535