如何从 play 2.4.6 连接 SQL 服务器
How to connect SQL Server from play 2.4.6
我是 Play 框架的新手。
我在 play 2.4.6.
连接 sql 服务器时遇到问题
文件application.conf
如下
db.default.url="jdbc:jtds:sqlserver://127.0.0.1:1433/DBNAME",
db.default.driver=net.sourceforge.jtds.jdbc.Driver,
db.default.user=sa,
db.default.pass=pass
我在 lib
和 libexec
文件夹中添加了 jtds-1.2.6 jar
。
build.sbt 文件如下。
libraryDependencies ++= Seq(
javaJdbc,
"net.sourceforge.jtds" % "jtds" % "1.2.6",
cache,
javaWs
)
fork in run := true
但是当我在 http://localhost:9000/ 访问浏览器时,出现以下错误
无法连接到数据库[默认]
请大家帮帮我。
以下是详细的异常:
! @700ahko28 - 内部服务器错误,对于 (GET) [/] ->
申请 -
play.api.Configuration$$anon$1:配置错误[无法连接到数据库[默认]]
在 play.api.Configuration$.configError(Configuration.scala:154)
在 play.api.Configuration.reportError(Configuration.scala:806)
在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:48)
在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:42)
在 scala.collection.immutable.List.foreach(List.scala:381)
在 play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)
在 play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72)
在 play.api.db.DBApiProvider.get(DBModule.scala:62)
在 play.api.db.DBApiProvider.get(DBModule.scala:58)
在 com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
原因:play.api.Configuration$$anon$1:配置错误[池初始化期间异常:HikariPool-0 - 连接不可用,请求在 30001 毫秒后超时。]
要使用的正确属性是 username
而不是 user
和 password
而不是 pass
。
属性为here
此外,您的 application.conf 文件中不需要逗号。在 libraryDependencies
中提到 jtds
后,您无需手动将它们放入 lib 或其他地方。 SBT 将拉取它们并将它们放入类路径中。
我在 IntelliJ 2016 中创建的新 Play!2 应用程序遇到了类似的问题。我从访问同一开发服务器的现有(旧)应用程序复制了配置,并且正在运行。但是当我在新项目中 运行 它不再工作并产生非常相似的堆栈跟踪时。
经过多次谷歌搜索和多种配置变体后,我发现了这个 link:https://github.com/brettwooldridge/HikariCP/issues/497。当我尝试添加以下内容时,他 application.config 突然一切正常:
db.default.hikaricp.connectionTestQuery="SELECT 1"
我是 Play 框架的新手。 我在 play 2.4.6.
连接 sql 服务器时遇到问题文件application.conf
如下
db.default.url="jdbc:jtds:sqlserver://127.0.0.1:1433/DBNAME",
db.default.driver=net.sourceforge.jtds.jdbc.Driver,
db.default.user=sa,
db.default.pass=pass
我在 lib
和 libexec
文件夹中添加了 jtds-1.2.6 jar
。
build.sbt 文件如下。
libraryDependencies ++= Seq(
javaJdbc,
"net.sourceforge.jtds" % "jtds" % "1.2.6",
cache,
javaWs
)
fork in run := true
但是当我在 http://localhost:9000/ 访问浏览器时,出现以下错误
无法连接到数据库[默认]
请大家帮帮我。
以下是详细的异常:
! @700ahko28 - 内部服务器错误,对于 (GET) [/] -> 申请 -
play.api.Configuration$$anon$1:配置错误[无法连接到数据库[默认]] 在 play.api.Configuration$.configError(Configuration.scala:154) 在 play.api.Configuration.reportError(Configuration.scala:806) 在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:48) 在 play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:42) 在 scala.collection.immutable.List.foreach(List.scala:381) 在 play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42) 在 play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72) 在 play.api.db.DBApiProvider.get(DBModule.scala:62) 在 play.api.db.DBApiProvider.get(DBModule.scala:58) 在 com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 原因:play.api.Configuration$$anon$1:配置错误[池初始化期间异常:HikariPool-0 - 连接不可用,请求在 30001 毫秒后超时。]
要使用的正确属性是 username
而不是 user
和 password
而不是 pass
。
属性为here
此外,您的 application.conf 文件中不需要逗号。在 libraryDependencies
中提到 jtds
后,您无需手动将它们放入 lib 或其他地方。 SBT 将拉取它们并将它们放入类路径中。
我在 IntelliJ 2016 中创建的新 Play!2 应用程序遇到了类似的问题。我从访问同一开发服务器的现有(旧)应用程序复制了配置,并且正在运行。但是当我在新项目中 运行 它不再工作并产生非常相似的堆栈跟踪时。
经过多次谷歌搜索和多种配置变体后,我发现了这个 link:https://github.com/brettwooldridge/HikariCP/issues/497。当我尝试添加以下内容时,他 application.config 突然一切正常:
db.default.hikaricp.connectionTestQuery="SELECT 1"