首页 文章

在Akka反序列化Actor

提问于
浏览
0

从这个Akka序列化文档http://doc.akka.io/docs/akka/2.4/scala/serialization.html

在序列化actor的部分,我发现这要反序列化:

val deserializedActorRef = extendedSystem.provider.resolveActorRef(identifier)

然而,当我尝试使用我创建的ActorSystem时,我创建了:

val extendedSystem = ActorSystem("myactorsystem")

我收到了这条消息:

无法在akka.actor.ActorSystem中访问trait中的方法提供程序 . 不允许访问受保护的方法提供程序,因为在程序包PackageName中包含类ClassName不是包定义者中的trait ActorRefFactory的子类,其中定义了目标

在使用resolveActorRef函数之前,我还有什么要做的吗?

1 回答

  • 0

    我猜测在他们试图说的文档中使用 ExtendedActorSystem 而不是 ActorSystem (名称为 extendedSystem 暗示)然后ExtendedActorSystem对提供者有公共访问权限 . 我还没有找到如何使用它的方法所以我找到了一个使用 SerializationExtension 的解决方法:

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

    我希望它有所帮助 .

相关问题