首页 文章

如何从Play 2.4.6连接SQL Server

提问于
浏览
2

我是Play框架的新手 . 从play 2.4.6开始连接sql server时遇到问题 .

文件 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

我在 liblibexec 文件夹中添加了 jtds-1.2.6 jar .

build.sbt file as below.

libraryDependencies ++= Seq(
  javaJdbc,
  "net.sourceforge.jtds" % "jtds" % "1.2.6",
  cache,
  javaWs
)

fork in run := true

但当我在http://localhost:9000/浏览器时,我得到以下错误

Cannot connect to database [default]

请帮帮我任何一个 .

以下是详细的例外情况:

! @ 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)at 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 - 连接不可用,请求在30001ms后超时 . ]

2 回答

  • 0

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

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

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

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

    这些属性是here

    此外,您的application.conf文件中不需要逗号 . 一旦你在 libraryDependencies 中提到 jtds ,就不需要手动将它们放在lib或其他地方 . SBT将它们拉出并放入类路径中 .

相关问题