远程akka actor错误发送可序列化的消息

时间:2014-12-15 06:31:29

标签: scala serialization akka

我使用远程akka actor并且我想发送序列化消息,使用ObjectOutputStream但当本地actor将消息发送给远程actor时有abd错误,错误是: java.io.NotRerializableException没有配置序列化 - 类java.io.ObjectOutputStream的绑定 建议使用哪种类型的序列化?

2 个答案:

答案 0 :(得分:2)

java.io.ObjectOutputStream不可序列化,因此无法作为开箱即用的远程消息发送。您需要发送不同的消息或为该类编写序列化程序并适当地配置Akka。但是,考虑到ObjectOutputStream是什么,对于通过线路发送的那种类型的对象来说甚至没有意义。

此外,java.io.ObjectOutputStream实际上是可变的,因此绝对不应该在Akka中作为消息发送,这使得整个事情没有实际意义。不要这样做。

答案 1 :(得分:1)

您无需创建自己的ObjectOutputStream即可发送消息。您只是一个可以序列化到您的Akka演员的域消息对象(例如,PersonAddItem,...)。 Akka将负责通过电汇发送。默认情况下,它将使用Java序列化(这不是最有效的)。