Используя постоянство Akka, я получаю следующее исключение:
Причина: akka.persistence.typed.internal.JournalFailureException: исключение при восстановлении. Последний известный порядковый номер [0]. PersistenceId [PersistenceExample], из-за: Невозможно создать экземпляр com.exercisePersistence.simpleExample.MyPersistentBehavior$Added
(хотя существует по крайней мере один Создатель): невозможно десериализовать из значения объекта (без создателя на основе делегатов или свойств) в [Source: (byte []) "{ "данные": "data1"} "; строка: 1, столбец: 2] в akka.persistence.typed.internal.ReplayingEvents.onRecoveryFailure (ReplayingEvents. scala: 221) в akka.persistence.typed.internal.ReplayingEvents.onJournalResponse (ReplayingEvents. scala 143): ... 26 общих кадров опущено
Причина: com.faster xml .jackson.databind.ex c .MismatchedInputException: Невозможно создать экземпляр com.exercisePersistence.simpleExample.MyPersistentBehavior$Added
(хотя существует хотя бы один создатель): невозможно десериализовать из значения объекта (без создателя на основе делегатов или свойств) в [Source: (byte []) "{" data ":" data1 "}"; строка: 1, столбец: 2]
Добавленный класс, который дает мне исключение:
public class MyPersistentBehavior
extends EventSourcedBehavior<MyPersistentBehavior.Command,
MyPersistentBehavior.Event, MyPersistentBehavior.State> {
// COMMAND
interface Command {}
public static class Add implements Command {
public final String data;
public Add(String data) {
this.data = data;
}
}
...
}
Файл reference.conf
akka {
actor {
serializers {
jackson-json = "akka.serialization.jackson.JacksonJsonSerializer"
jackson-cbor = "akka.serialization.jackson.JacksonCborSerializer"
proto = "akka.remote.serialization.ProtobufSerializer"
}
serialization-bindings {
"com.exercisePersistence.simpleExample.MyPersistentBehavior" = jackson-json
"com.exercisePersistence.simpleExample.MyPersistentBehavior$Added" = jackson-json
#"docs.serialization.CborSerializable" = jackson-cbor
"com.google.protobuf.Message" = proto
}
}
akka.serialization.jackson {
jackson-json-message {
serialization-features {
WRITE_DATES_AS_TIMESTAMPS = on
}
}
jackson-json-event {
serialization-features {
WRITE_DATES_AS_TIMESTAMPS = off
}
}
}
persistence {
journal {
plugin = "leveldb"
leveldb {
dir = "target/persistence/journal"
}
}
snapshot-store.local.dir = "target/persistence/snapshots"
}
}
leveldb {
dir = "target/persistence/journal"
checksum: "off"
class: "akka.persistence.journal.leveldb.LeveldbJournal"
dir: "target/persistence/journal"
fsync: "on"
native: "on"
plugin-dispatcher : "akka.persistence.dispatchers.default-plugin-dispatcher"
replay-dispatcher : "akka.persistence.dispatchers.default-replay-dispatcher"
}
Если вы хотите клонировать проект, это ссылка на Github: https://github.com/Mazzotta13/AkkaTutorial.git