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?
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:
Notice that it is postgres instead of postgresql.
Most probably this is the problem:
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:
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: