获取Akka主要演员的背景信息

时间:2017-04-04 22:25:41

标签: scala akka actor

我正试图点击一个POST请求,就像这里显示的Akka文档中的那个。 http://doc.akka.io/docs/akka-http/current/scala/http/client-side/request-level.html#request-level-api

但是,我正在尝试将其作为另一个已定义的类内部。如果我尝试添加任何需要Actor context val http = HTTP(context.system)的内容,我会收到错误消息。如何将上下文传递到我正在尝试发出POST请求的类中?

trait CustomerProfilesComponent {
  def customerProfileManager: CustomerService.Async
}

object DefaultCustomerProfiles {
  private case class ProfileUpdateData(path: Seq[String], data: JsObject, metadata: JsObject)
}

trait DefaultCustomerProfiles extends CustomerProfilesComponent {
  self: DatabaseComponent with SourceVersionComponent with ExecutionContextComponent =>

  import DefaultCustomerProfiles._

  lazy val customerProfileManager = new CustomerService.Async {

    import db.api._
    import AvroConverter._

    override def getVersion : Future[AvroVersion] = {
      Future.successful(toAvro(sourceVersion))
    }
}

1 个答案:

答案 0 :(得分:0)

您需要的是actor system。从akka-http文档发布:

  

请求级API在ActorSystem内共享的连接池之上实现。

请求API有两种使用方案:

  • 使用它within an actor - 当你可以通过演员上下文获得演员系统时(就像你已经尝试过,但是因为你不在演员中,你没有演员上下文可用)< / LI>
  • 使用它outside an actor你的情况) - 当你可以通过提供演员系统作为依赖(通过类/方法参数或隐式参数)来获取演员系统时

我希望这有用。