【问题标题】:Deserialize Actor in Akka在 Akka 中反序列化 Actor
【发布时间】:2017-02-25 22:58:54
【问题描述】:

来自此 Akka 序列化文档 http://doc.akka.io/docs/akka/2.4/scala/serialization.html

在序列化actor方面,我发现这是反序列化的:

val deserializedActorRef = extendedSystem.provider.resolveActorRef(identifier)

但是,当我尝试使用我创建的 ActorSystem 时:

val extendedSystem = ActorSystem("myactorsystem") 

我收到了这条消息:

trait ActorRefFactory 中的方法提供者无法在 akka.actor.ActorSystem

不允许访问受保护的方法提供程序,因为 在包 PackageName 中包含类 ClassName 不是 包 actor 中 trait ActorRefFactory 的子类 where 目标已定义

在使用 resolveActorRef 函数之前我应该​​做些什么?

【问题讨论】:

    标签: scala akka


    【解决方案1】:

    我遇到了一些问题。我猜在文档中他们试图说使用ExtendedActorSystem 而不是ActorSystem(作为名称extendedSystemimplies),然后ExtendedActorSystem 可以公开访问提供者。我还没有找到如何使用它的方法,所以我找到了使用 SerializationExtension 的解决方法:

    val system = ActorSystem("myactorsystem")
    val serialization = SerializationExtension(system)
    val deserializedActorRef = serialization.system.provider.resolveActorRef(actorRef)
    

    我希望它有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-06
      • 2015-04-15
      • 2023-04-02
      • 2014-09-29
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 2015-02-13
      相关资源
      最近更新 更多