我使用远程akka actor并且我想发送序列化消息,使用ObjectOutputStream但当本地actor将消息发送给远程actor时有abd错误,错误是: java.io.NotRerializableException没有配置序列化 - 类java.io.ObjectOutputStream的绑定 建议使用哪种类型的序列化?
答案 0 :(得分:2)
java.io.ObjectOutputStream
不可序列化,因此无法作为开箱即用的远程消息发送。您需要发送不同的消息或为该类编写序列化程序并适当地配置Akka。但是,考虑到ObjectOutputStream
是什么,对于通过线路发送的那种类型的对象来说甚至没有意义。
此外,java.io.ObjectOutputStream
实际上是可变的,因此绝对不应该在Akka中作为消息发送,这使得整个事情没有实际意义。不要这样做。
答案 1 :(得分:1)
您无需创建自己的ObjectOutputStream
即可发送消息。您只是一个可以序列化到您的Akka演员的域消息对象(例如,Person
,AddItem
,...)。 Akka将负责通过电汇发送。默认情况下,它将使用Java序列化(这不是最有效的)。