流畅的 MSSQL "Failed to create Slick database config for key default"
Slick MSSQL "Failed to create Slick database config for key default"
我无法使用 Slick 连接到我们的 MSSQL 数据库。
我知道我必须使用 Slick Extensions 并且已经这样做了。这是我们构建的摘录
lazy val thirdPartyDependencies = Seq(
...
"com.typesafe.slick" %% "slick-extensions" % "3.1.0",
"com.typesafe.play" %% "play-slick" % "1.1.0",
"com.typesafe.slick" %% "slick-codegen" % "3.1.0" % "compile"
)
lazy val allResolvers = Seq(
"Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
"sonatype-releases" at "https://oss.sonatype.org/content/repositories/releases/",
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/"
)
这是 Slick
的 application.conf 配置
#Slick configuration.
slick.dbs.default.driver=com.typesafe.slick.driver.ms.SQLServerDriver
slick.dbs.default.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
slick.dbs.default.db.url=${?db.default.url}
slick.dbs.default.db.user=${?sql_user}
slick.dbs.default.db.password=${?sql_password}
我使用 SourceCodeGenerator
工具构建了 Table 定义,没有出现任何问题。这是连接到数据库的代码:
val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)
我没有任何编译时问题,但是当我 运行 代码时 运行 进入以下堆栈跟踪:
[error] play.api.db.slick.DefaultSlickApi - Failed to create Slick database config for key default.
slick.SlickException: Error getting instance of Slick driver "com.typesafe.slick.driver.ms.SQLServerDriver"
at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:65) ~[slick_2.11-3.1.0.jar:na]
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:89) [play-slick_2.11-1.1.0.jar:1.1.0]
...
Caused by: java.lang.InstantiationException: com.typesafe.slick.driver.ms.SQLServerDriver
at java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_45]
at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:63) ~[slick_2.11-3.1.0.jar:na]
... 22 common frames omitted
Caused by: java.lang.NoSuchMethodException: com.typesafe.slick.driver.ms.SQLServerDriver.<init>()
at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_45]
at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_45]
... 23 common frames omitted
我对 Slick 完全陌生。我们有一个商业类型安全许可证,所以我认为我们可能应该使用其中提供的一些巧妙的功能。谢谢你的帮助。
您的 application.conf
配置文件有问题。尝试在驱动程序名称末尾添加尾随 $
以告诉 Slick 将其作为对象引用:
slick.dbs.default.driver = "com.typesafe.slick.driver.ms.SQLServerDriver$"
请阅读了解更多信息。
我无法使用 Slick 连接到我们的 MSSQL 数据库。
我知道我必须使用 Slick Extensions 并且已经这样做了。这是我们构建的摘录
lazy val thirdPartyDependencies = Seq(
...
"com.typesafe.slick" %% "slick-extensions" % "3.1.0",
"com.typesafe.play" %% "play-slick" % "1.1.0",
"com.typesafe.slick" %% "slick-codegen" % "3.1.0" % "compile"
)
lazy val allResolvers = Seq(
"Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
"sonatype-releases" at "https://oss.sonatype.org/content/repositories/releases/",
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/"
)
这是 Slick
的 application.conf 配置#Slick configuration.
slick.dbs.default.driver=com.typesafe.slick.driver.ms.SQLServerDriver
slick.dbs.default.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
slick.dbs.default.db.url=${?db.default.url}
slick.dbs.default.db.user=${?sql_user}
slick.dbs.default.db.password=${?sql_password}
我使用 SourceCodeGenerator
工具构建了 Table 定义,没有出现任何问题。这是连接到数据库的代码:
val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)
我没有任何编译时问题,但是当我 运行 代码时 运行 进入以下堆栈跟踪:
[error] play.api.db.slick.DefaultSlickApi - Failed to create Slick database config for key default.
slick.SlickException: Error getting instance of Slick driver "com.typesafe.slick.driver.ms.SQLServerDriver"
at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:65) ~[slick_2.11-3.1.0.jar:na]
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:89) [play-slick_2.11-1.1.0.jar:1.1.0]
...
Caused by: java.lang.InstantiationException: com.typesafe.slick.driver.ms.SQLServerDriver
at java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_45]
at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:63) ~[slick_2.11-3.1.0.jar:na]
... 22 common frames omitted
Caused by: java.lang.NoSuchMethodException: com.typesafe.slick.driver.ms.SQLServerDriver.<init>()
at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_45]
at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_45]
... 23 common frames omitted
我对 Slick 完全陌生。我们有一个商业类型安全许可证,所以我认为我们可能应该使用其中提供的一些巧妙的功能。谢谢你的帮助。
您的 application.conf
配置文件有问题。尝试在驱动程序名称末尾添加尾随 $
以告诉 Slick 将其作为对象引用:
slick.dbs.default.driver = "com.typesafe.slick.driver.ms.SQLServerDriver$"
请阅读