【发布时间】:2015-02-13 05:21:30
【问题描述】:
我正在使用远程 akka 演员,我想发送序列化消息,使用 ObjectOutputStream 但是当本地演员向远程演员发送消息时出现 abd 错误,错误是: java.io.NotRerializableException 未配置序列化 - 类 java.io.ObjectOutputStream 的绑定 推荐哪种类型的序列化?
【问题讨论】:
标签: scala serialization akka
我正在使用远程 akka 演员,我想发送序列化消息,使用 ObjectOutputStream 但是当本地演员向远程演员发送消息时出现 abd 错误,错误是: java.io.NotRerializableException 未配置序列化 - 类 java.io.ObjectOutputStream 的绑定 推荐哪种类型的序列化?
【问题讨论】:
标签: scala serialization akka
您不必创建自己的ObjectOutputStream 来发送消息。你只是一个域消息对象(例如,Person,AddItem,...),它可以序列化到你的 Akka 演员。 Akka 将负责通过网络发送它。默认情况下,它将使用 Java 序列化(这不是最有效的)。
【讨论】:
java.io.ObjectOutputStream 不可序列化,因此无法作为开箱即用的远程消息发送。您要么需要发送不同的消息,要么为该类编写序列化程序并适当地配置 Akka。但是,鉴于ObjectOutputStream 是什么,通过网络发送该类型的对象甚至没有意义。
此外,java.io.ObjectOutputStream 实际上是可变的,因此绝对不应该在 Akka 中将其作为消息发送,从而使整个事情变得毫无意义。只是不要这样做。
【讨论】: