【问题标题】:Play! framework with missing type Promise玩!缺少类型 Promise 的框架
【发布时间】:2012-12-19 21:15:01
【问题描述】:

我正在尝试获得我的第一个 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]

【问题讨论】:

  • 你的 Play2 版本是什么? Promise/Future API 在最新版本中发生了很大变化
  • @JulienLafont 我使用的是 2.1 版 RC,这是问题所在。

标签: scala playframework-2.0


【解决方案1】:

Play2.1 使用 Scala Future 而不是玩 Promise

查看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

【讨论】:

  • 谢谢,我一直在学习本教程,但真正的问题是我错过了一个导入:import scala.concurrent._
【解决方案2】:

问题在于缺少导入:

import scala.concurrent._

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2012-08-03
    • 2012-08-21
    • 1970-01-01
    相关资源
    最近更新 更多