Tho*_*mel 14 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]
Run Code Online (Sandbox Code Playgroud)
我使用以下配置文件:
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
Run Code Online (Sandbox Code Playgroud)
项目/ Build.scala
val appDependencies = Seq(
"postgresql" % "postgresql" % "9.1-901.jdbc4"
)
Run Code Online (Sandbox Code Playgroud)
我设置Play_Playground_DB
并可以通过终端和命令访问它psql Play_Playground_DB
.
可能是问题的根本原因是什么?
A.H*_*.H. 24
最有可能的是这个问题:
db.default.url="postgres://play:play@localhost:9000/Play_Playground_DB"
Run Code Online (Sandbox Code Playgroud)
该游戏数独说,"db.default.url"是一个普通的JDBC的URL.您的价值有两个问题:
...default...
您重新定义默认数据源.默认情况下,除非您执行更多步骤,否则会出现问题.在您的情况下,有效的PostgreSQL URL可能如下所示:
jdbc:postgresql://localhost:9000/Play_Playground_DB
Run Code Online (Sandbox Code Playgroud)
但是:_确定您的数据库在端口9000上运行吗?你说psql Play_Playground_DB
对你有用.因此,我认为您的端口应该是默认端口5432.然后此URL是正确的:
jdbc:postgresql://localhost/Play_Playground_DB
Run Code Online (Sandbox Code Playgroud)
小智 5
在我的OSX上,我已经从自制软件安装了PostgreSQL,当前版本是9.3.4
上面描述的连接字符串对我不起作用,因为它们使用postresql数据库名称.当且仅当我指定时,才建立我的连接:
db.default.url="postgres://user:password@localhost/MyDbName"
Run Code Online (Sandbox Code Playgroud)
请注意,它是postgres而不是postgresql.