Как сериализовать коллекции для удаленных актеров в Scala? - PullRequest
1 голос
/ 11 февраля 2011

В Java все коллекции сериализуемы, но почему-то я всегда получаю исключение, когда хочу отправить коллекции scala с удаленными участниками. Это всегда заканчивается исключениями. Важно, чтобы коллекция была изменчивой и имела произвольный доступ

[error] scala.actors.remote.DelegateActor@5090d8ea: caught java.io.NotSerializableException: scala.collection.mutable.ArraySeq
[error] java.io.NotSerializableException: scala.collection.mutable.ArraySeq
[error]     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
[error]     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
[error]     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
[error]     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
[error]     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)

Коллекция вложена в другой класс, который затем отправляется по сети

@serializable
class NetworkSendable[A]{
    val data = new collection.mutalbe.ArraySeq[A](10)
}

1 Ответ

1 голос
/ 11 февраля 2011

Они не определены для сериализации, поэтому вам, вероятно, придется обернуть их в другую структуру и развернуть их по прибытии.

Другой альтернативой является настройка механизма сериализации, но это может привести к ошибкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...