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 使用 Scala Future而不是玩Promise

查看迁移指南以获取更多信息,“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 回答