14

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

project / Build.scala

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

セットアップしてPlay_Playground_DB、ターミナルとコマンドを介してアクセスできますpsql Play_Playground_DB

問題の根本的な原因は何でしょうか?

4

2 に答える 2

24

おそらくこれが問題です:

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

Play dokuによると、「db.default.url」はプレーンなJDBC-URLです。あなたの価値には2つの問題があります:

  • PostgreSQLで認識される形式ではありません。許可されている形式については、こちらをご覧ください。
  • ...default...デフォルトのデータソースを再定義します。デフォルトでは、さらにいくつかの手順を実行しない限り、これは問題を引き起こします。

有効なPostgreSQLURLは、次のようになります。

jdbc:postgresql://localhost:9000/Play_Playground_DB

しかし:_データベースがポート9000で実行されていることを確認しますか?あなたはあなたpsql Play_Playground_DBのために働くと言います。したがって、あなたのポートはデフォルトのポート5432である必要があると思います。その場合、このURLは正しいものです。

jdbc:postgresql://localhost/Play_Playground_DB
于 2012-04-23T16:19:31.780 に答える
5

私のOSXには、自作からPostgreSQLをインストールしましたが、現在のバージョンは9.3.4です。

上記の接続文字列は、postresqlデータベース名を使用しているため、機能しません。次のように指定した場合にのみ、接続が確立されます。

db.default.url="postgres://user:password@localhost/MyDbName"

postgresqlではなくpostgresであることに注意してください。

于 2014-05-01T21:09:31.993 に答える