2016-03-11 4 views
0

Я провел два дня, пытаясь отладить проблему, когда сообщение не обрабатывалось актером, в конечном счете, чтобы узнать, что отправленное ему сообщение не имеет круглых скобок, следующих за его именем. Если классы Score без аргументов без круглых скобок устарели в Scala, почему Akka все же позволяет отправлять их без предупреждения?Если классы классов без аргументов без круглых скобок устарели в Scala, почему Akka все еще разрешает их передавать?

+0

Класс без параметров - это действительно «случайный объект» –

ответ

1

Я предполагаю, что проблема здесь не в том, что объект-компаньон не является Serializable. В любом случае вы получите предупреждение - и исключение, если вы используете удаленный akka. Вероятно, проблема заключалась в том, что функция приема в получающем акторе не имеет случая для объекта-компаньона.

Akka просто не интересует, какие сообщения вы отправляете, поскольку вы можете отправить любой объект в виде сообщения. Мне не имеет смысла проверять, чтобы вы не отправляли устаревший класс.

+0

Я использовал прокси для RabbitMQ вместо удаленных Akka, которые маскировали сериализуемую проблему. Это объясняет, почему я не видел исключения. Благодаря! – doctorless

1

Я предполагаю, что здесь, но похоже, что вы отправляли, был сопутствующий объект класса case, а не сам класс case. Класс case был бы сериализуем по умолчанию (все классы классов сериализуемы, если они построены из сериализуемых компонентов), но спутник не гарантируется сериализуемым.

 Смежные вопросы

  • Нет связанных вопросов^_^