2012-12-18 32 views
4

我想让我的第一个Scala + Play!应用程序的工作,并试图访问我的应用程序(在端口9000)时,我遇到这样的问题:玩!框架缺少类型Promise

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

什么是Play2版本? Promise/Future API在最新版本中发生了很大变化 –

+0

@JulienLafont我使用的版本是2.1 RC,这是问题所在。 – wlk

回答

3

的问题是有缺失的进口:

import scala.concurrent._ 
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

+0

谢谢,我正在学习本教程,但真正的问题是我错过了一个导入:import scala.concurrent._ – wlk