如何从Play 2.4.6连接SQL Server

时间:2016-04-27 14:47:14

标签: java scala playframework playframework-2.0 playframework-2.4

我是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 

我在jtds-1.2.6 jarlib个文件夹中添加了libexec

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:配置错误[无法连接到数据库[默认]]     at play.api.Configuration $ .configError(Configuration.scala:154)     at play.api.Configuration.reportError(Configuration.scala:806)     at play.api.db.DefaultDBApi $$ anonfun $ connect $ 1.apply(DefaultDBApi.scala:48)     at play.api.db.DefaultDBApi $$ anonfun $ connect $ 1.apply(DefaultDBApi.scala:42)     在scala.collection.immutable.List.foreach(List.scala:381)     at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)     at play.api.db.DBApiProvider.get $ lzycompute(DBModule.scala:72)     at play.api.db.DBApiProvider.get(DBModule.scala:62)     at play.api.db.DBApiProvider.get(DBModule.scala:58)     在com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 引起:play.api.Configuration $$ anon $ 1:配置错误[池初始化期间出现异常:HikariPool-0 - 连接不可用,请求在30001ms后超时。]

2 个答案:

答案 0 :(得分:1)

我在IntelliJ 2016中创建的新Play!2应用程序遇到了类似问题。我从访问同一开发服务器的现有(较旧)应用程序复制了配置,并且正在运行。但是当我在新项目中运行它时,它不再工作并产生非常相似的堆栈跟踪。

经过大量谷歌搜索和多种配置变化后,我发现了这个链接:https://github.com/brettwooldridge/HikariCP/issues/497。当我尝试添加以下应用程序时,application.config突然一切正常:

db.default.hikaricp.connectionTestQuery="SELECT 1"

答案 1 :(得分:0)

要使用的正确属性是username而不是userpassword而不是pass

属性为here

此外,您的application.conf文件中不需要逗号。在jtds中提到libraryDependencies之后,您无需手动将它们放入lib或其他位置。 SBT将拉出它们并将它们放入类路径中。