Play Framework 2.1 - 找不到隐式ExecutionContext

时间:2013-02-19 15:56:27

标签: 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'")
  }
}

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

3 个答案:

答案 0 :(得分:115)

根据this issue,它已在文档中修复。我需要添加以下导入:

import play.api.libs.concurrent.Execution.Implicits._

答案 1 :(得分:1)

从Play 2.4开始,您可以通过Guice依赖注入默认execution context:注入。

class Foo @Inject()()(implicit ec:ExecutionContext) {

def bar() = {
   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'")
     }
   }
}

答案 2 :(得分:-1)

An alternative option:

import scala.concurrent.ExecutionContext.Implicits.global