ActorRefs как части сообщений в Akka (java.io.NotSerializableException) - PullRequest
3 голосов
/ 28 ноября 2011

Используя Akka 1.2 (и 1.3-RC1), я все еще сталкиваюсь с той же проблемой, о которой говорил Виктор в ноябре 2010 года в http://groups.google.com/group/akka-dev/browse_thread/thread/fe85adf5aeeec168

, т. Е. Пытается отправить локальную ссылку на актераУдаленный актер приводит к исключению ниже.Мне было интересно, ожидается ли это на данный момент, или есть какие-то настройки конфигурации Akka и т. Д. Мне не хватает того, чтобы можно было задействовать магию вуду, необходимую для автоматической сериализации ссылок на актеров по мере необходимости?

Спасибо, удивительно,Scala

[ERROR]   [11/28/11 11:55 AM] [akka:event-driven:dispatcher:global-32] [LocalActorRef] akka.actor.LocalActorRef
java.io.NotSerializableException: akka.actor.LocalActorRef
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at akka.serialization.Serializer$Java$class.toBinary(Serializer.scala:60)
at akka.serialization.Serializer$Java$.toBinary(Serializer.scala:55)
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:55)
at akka.serialization.RemoteActorSerialization$.createRemoteMessageProtocolBuilder(SerializationProtocol.scala:327)
at akka.remote.netty.RemoteClient.send(NettyRemoteSupport.scala:252)
at akka.remote.netty.NettyRemoteClientModule$$anonfun$send$1.apply(NettyRemoteSupport.scala:109)
at akka.remote.netty.NettyRemoteClientModule$$anonfun$send$1.apply(NettyRemoteSupport.scala:109)
at akka.remote.netty.NettyRemoteClientModule$class.withClientFor(NettyRemoteSupport.scala:134)
at akka.remote.netty.NettyRemoteSupport.withClientFor(NettyRemoteSupport.scala:647)
at akka.remote.netty.NettyRemoteClientModule$class.send(NettyRemoteSupport.scala:109)
at akka.remote.netty.NettyRemoteSupport.send(NettyRemoteSupport.scala:647)
at akka.actor.RemoteActorRef.postMessageToMailbox(ActorRef.scala:1246)
at akka.actor.ScalaActorRef$class.$bang(ActorRef.scala:1410)
at akka.actor.RemoteActorRef.$bang(ActorRef.scala:1219)

...

1 Ответ

3 голосов
/ 29 ноября 2011

Документация золотая: http://akka.io/docs/akka/1.3-RC1/scala/serialization.html#id7

Могу также добавить, что это будет полностью прозрачно в 2.0

...