4

初めての Scala + Play を取得しようとしています! アプリケーションは動作していますが、アプリケーション (ポート 9000) にアクセスしようとすると、次の問題が発生します。

not found: type Promise

この行で:

val page: Promise[play.api.libs.ws.Response] = WS.url(googleApiUrl).get() 

それらは私の輸入品です:

import play.api._
import play.api.mvc._
import play.api.libs.ws._
import play.api.libs.ws.Response
import play.api.http
import play.api.libs.concurrent._
import play.api.libs._

ここで何か不足していますか?

これらはコンソールのログです:

sbt.PlayExceptions$CompilationException: Compilation error[not found: type Promise]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:322) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:322) ~[na:na]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:322) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:319) ~[na:na]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
4

2 に答える 2

7

Play2.1は play Promiseの代わりにScala Futureを使用します。

詳細については、移行ガイドの「Play が Scala の未来になるという約束」の章を確認してください。

簡単な例は次のようなものです:

import play.api._
import play.api.mvc._
import play.api.libs.ws._

import play.api.libs.concurrent._
import play.api.libs.concurrent.Execution.Implicits._

def myAction() = Action {
    Async {
        WS.url(googleApiUrl).get.map(response => Ok("what you want here"))
    }
}

この例は、WS API のより複雑な使用法で確認できます

于 2012-12-19T13:15:01.070 に答える
3

問題はインポートの欠落にありました:

import scala.concurrent._
于 2012-12-19T09:40:25.667 に答える