Акка-крио-сериализация ClassNotFoundException: scala.Enumeration $ Val

Иногда при обновлении версии зависимости для моего проекта, когда я запускал проект, я получал следующую ошибку:

ERROR 09:31:34:241 apply$mcV$sp - Class could not be loaded and/or registered: scala.Enumeration$Val 
ERROR 09:31:34:247 apply$mcV$sp - exception caught during akka-kryo-serialization startup: java.lang.ClassNotFoundException: scala.Enumeration$Val
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)

Обычно мне везло, и я мог исправить это, настроив версии своих зависимостей.

Пока я не обновил свою версию akka с 2.3.6 до 2.3.12, в частности, akka-contrib, который содержит akka-cluster, akka-remote и akka-peristance.


person rhamilton    schedule 13.08.2015    source источник


Ответы (1)


Оказывается, проблема действительно возникла при переходе с Akka 2.3.8 на 2.3.9. Просматривая журнал изменений, я обнаружил, что между этими двумя версиями версия Scala была обновлена ​​с 2.11.4 до 2.11.5.

Мой проект строился на scala 2.11.4. Обновление до 2.11.5 устранило проблему.

Я не мог найти никакой помощи в Интернете по этому поводу и потерял пару дней, пытаясь понять это. Я надеюсь, что это поможет кому-то другому.

person rhamilton    schedule 13.08.2015
comment
вы увидите, что для меня это происходило при некоторых очень специфических условиях (переход с akka 2.3.8 на 2.3.9 с явно установленной версией scala 2.11.4). Я полагаю, маловероятно, что у вас будут точно такие же условия через два года. Если вы хотите открыть вопрос о переполнении стека и связать его здесь, я мог бы нанести удар. Что, вероятно, было бы наиболее полезным, если бы вы предоставили эту трассировку стека и, возможно, граф зависимостей. - person rhamilton; 08.11.2017
comment
Я использую 2.11.11 Scalaversion, моя версия akka - 2.5.6, версия kryo 4.0.1 и версия akka-kryo-serialization - 0.5.0. Трассировка стека: ERROR spatcher-3 [-] craskKryoSerializer (akka: // test) - Класс не может быть загружен и / или зарегистрирован: scala.Enumeration $ Val [error] (run-main-0) java.lang.ClassNotFoundException : scala.Enumeration $ Val ERROR spatcher-3 [-] craskKryoSerializer (akka: // test) - исключение обнаружено во время запуска akka-kryo-сериализации: java.lang.ClassNotFoundException: scala.Enumeration $ Val - person Arun Gupta; 08.11.2017
comment
Я думаю, что информация, которую вы должны мне предоставить, чтобы помочь вам, действительно потребует нового вопроса SO. Я бы порекомендовал написать вопросы, включить то, что вы включили в комментарий выше, и, возможно, ваш файл sbt и граф зависимостей с filterScalaLibrary: = false. Я догадываюсь, что по крайней мере одна из этих библиотек построена на Scala 2.12 вместо 2.11 и несовместима. Другая проблема может заключаться в том, что Kryo 0.5.0 построен на основе akka 2.4, поэтому он может не работать с Akka 2.5. - person rhamilton; 08.11.2017