我正在努力获得我的第一个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]
答案 0 :(得分:7)
Play2.1使用Scala 未来而不是播放承诺。
查看migration guide以获取更多信息,“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来检查此exemple。
答案 1 :(得分:3)
问题在于缺少导入:
import scala.concurrent._