postgresql - 如何为 Play 2.0 设置 PostgreSQL?

标签 postgresql scala playframework-2.0

我想为我的 Play 应用配置 PostgreSQL,但出现以下错误:

! Internal server error, for request [GET /] ->

java.util.concurrent.TimeoutException: Futures timed out after [300000] milliseconds    at
akka.dispatch.DefaultPromise.ready(Future.scala:834)
~[akka-actor.jar:2.0]   at
akka.dispatch.DefaultPromise.result(Future.scala:838)
~[akka-actor.jar:2.0]   at akka.dispatch.Await$.result(Future.scala:74)
~[akka-actor.jar:2.0]   at
play.core.ReloadableApplication.get(ApplicationProvider.scala:108)
~[play_2.9.1.jar:2.0]   at
play.core.server.Server$class.sendHandler$1(Server.scala:59)
[play_2.9.1.jar:2.0]    at
play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:89)
[play_2.9.1.jar:2.0] [error] application - 

! @6a64i2p5o - Internal server error, for request [GET /] ->

play.api.PlayException: Not initialized [?]     at
play.api.PlayException$.apply(Exceptions.scala:122)
~[play_2.9.1.jar:2.0]   at
play.core.ReloadableApplication.<init>(ApplicationProvider.scala:94)
~[play_2.9.1.jar:2.0]   at
play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:165)
~[play_2.9.1.jar:2.0]   at
play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:164)
~[play_2.9.1.jar:2.0]   at
play.utils.Threads$.withContextClassLoader(Threads.scala:17)
~[play_2.9.1.jar:2.0]   at
play.core.server.NettyServer$.mainDev(NettyServer.scala:163)
~[play_2.9.1.jar:2.0]

我使用以下配置文件:

application.conf

db.default.url="postgres://play:play@localhost:9000/Play_Playground_DB"
db.default.user=play
db.default.password=play
db.default.driver=org.postgresql.Driver

项目/Build.scala

val appDependencies = Seq(
  "postgresql" % "postgresql" % "9.1-901.jdbc4"
)

我设置了 Play_Playground_DB 并可以通过终端和命令 psql Play_Playground_DB 访问它。

问题的根本原因可能是什么?

最佳答案

很可能是这个问题:

db.default.url="postgres://play:play@localhost:9000/Play_Playground_DB"

play doku说,“db.default.url”是一个普通的 JDBC-URL。你的值有两个问题:

  • 它不是 PostgreSQL 可识别的格式。看here对于允许的格式。
  • 使用...default... 重新定义默认数据源。默认情况下,除非您执行更多步骤,否则这会带来麻烦。

在您的情况下,有效的 PostgreSQL URL 可能如下所示:

jdbc:postgresql://localhost:9000/Play_Playground_DB

但是:_确定您的数据库在端口 9000 上运行吗?你说 psql Play_Playground_DB 适合你。因此我认为您的端口应该是默认端口 5432。那么这个 URL 是正确的:

jdbc:postgresql://localhost/Play_Playground_DB

关于postgresql - 如何为 Play 2.0 设置 PostgreSQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282402/

相关文章:

scala - 如何在控制台/Scala REPL 中导入 org.scalacheck.Gen?

scala - scala 中的类型安全响应是否可能?

scala - 如何在 Slick 2.1.0 中使用编译插入?

postgresql - 在 PgAdmin 中搜索所有表

java - PostgreSQL 9.0 JDBC 驱动程序是否适用于 64 位 java?

playframework - 在 Play Framework 2.0 中发送电子邮件

scala - Scala 的绝对反向路由?

forms - Play 2 : idiomatic approach to binding a form to List[Model]

postgresql - 将 Postgres 主键类型从 varchar 更改为 uuid 并被其他表引用

c# - 使用 Dapper 和 Postgres 调用存储过程