I'd like to configure PostgreSQL for my Play app, but am getting the following error:
! 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]
I use the following configuration files:
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
project/Build.scala
val appDependencies = Seq(
"postgresql" % "postgresql" % "9.1-901.jdbc4"
)
I set up Play_Playground_DB
and can access it via terminal and the command psql Play_Playground_DB
.
What could be the root cause of the issue?
Most probably this is the problem:
db.default.url="postgres://play:play@localhost:9000/Play_Playground_DB"
The play doku says, "db.default.url" is a plain JDBC-URL. There are two problems with your value:
...default...
you redefine the default datasource. By default this calls for trouble unless you do some more steps.A valid PostgreSQL URL might look like this in your case:
jdbc:postgresql://localhost:9000/Play_Playground_DB
But:_ Are sure your database is running on port 9000? You say psql Play_Playground_DB
works for you. Therefore I think your port should be the default port 5432. Then this URL is the right one:
jdbc:postgresql://localhost/Play_Playground_DB
On my OSX, I've installed PostgreSQL from homebrew and current version is 9.3.4
The connection strings described above do not work for me because they are using postresql database name. My connections are established if and only if I specify like:
db.default.url="postgres://user:password@localhost/MyDbName"
Notice that it is postgres instead of postgresql.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With