У меня есть приложение Play, основанное на шаблоне Typesafe play-scala (Play Scala Seed), и попытался добавить Slick 3.0.0 в проект и подключиться к базе данных PostgreSQL.
Сначала я добавил зависимости к build.sbt
:
libraryDependencies ++= Seq(
"com.typesafe.slick" %% "slick" % "3.0.0-RC1",
"postgresql" % "postgresql" % "9.1-901.jdbc4"
)
Затем добавил конфигурацию базы данных на application.conf
:
brDb = {
dataSourceClass = org.postgresql.ds.PGSimpleDataSource
url = "jdbc:postgresql://localhost:5432/test"
user = "postgres"
password = "postgres"
numThreads = 10
}
Обратите внимание, что я не отключил пул явно, поэтому он включен по умолчанию, и я попытаюсь использовать HikariCP, потому что, начиная с Slick 3.0.0 RC1, Поддержка HikariCP существует, и объединение с ее использованием включено по умолчанию.
И в моем объекте DAO попытался получить соединение с базой данных следующим образом:
Database.forConfig("brDb")
Когда я запускаю приложение с помощью activator run
, я получаю эту ошибку:
RuntimeException: java.lang.NoClassDefFoundError: com/zaxxer/hikari/HikariConfig
Затем я попытался добавить HikariCP в качестве зависимости в build.sbt
:
libraryDependencies ++= Seq(
// ...
"com.zaxxer" % "HikariCP" % "2.3.3",
// ...
)
Очистил и перекомпилировал приложение, используя activator clean compile
, и снова запустил его, но получаю другую ошибку:
RuntimeException: java.lang.UnsupportedClassVersionError: com/zaxxer/hikari/HikariConfig
Я думаю, что мне не хватает какой-то конфигурации, но я не уверен и не нашел больше информации об этом. Как настроить конфигурацию, чтобы пул соединений работал?