Play Framework 2.1 - 找不到隐式ExecutionContext

EEC*_*LOR 50 scala playframework playframework-2.0

我打电话给这样的网络服务:

WS
  .url(url)
  .get
  .map { response => // error occurs on this line
    response.status match {
      case 200 => Right(response.json)
      case status => Left(s"Problem accessing api, status '$status'")
  }
}
Run Code Online (Sandbox Code Playgroud)

完整的错误: Error: Cannot find an implicit ExecutionContext, either require one yourself or import ExecutionContext.Implicits.global

EEC*_*LOR 115

根据这个问题,它已在文档中修复.我需要添加以下导入:

import play.api.libs.concurrent.Execution.Implicits._
Run Code Online (Sandbox Code Playgroud)

  • 关于执行上下文.有些人认为它与Scala全局背景相同.但事实并非如此.[Execution.scala](https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/api/libs/concurrent/Execution.scala)指向至[Invoker.scala](https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/core/system/Invoker.scala?source=cc )所以它实际上是Play actor系统的执行上下文.这允许您使用application.conf更改行为 (7认同)