Я получаю сообщение об ошибке, в котором говорится: «Нет настроенных привязок сериализации для класса [testes.Hello]». Я выполнил все шаги на https://github.com/romix/akka-kryo-serialization, и, похоже, все идет в соответствии с инструкциями.Хотя, кажется, не могу найти правильный путь для моего класса, не важно, что.
Вот мой класс .conf:
akka {
actor {
warn-about-java-serializer-usage = false
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2554
}
}
serializers {
java = "akka.serialization.JavaSerializer"
# Define kryo serializer
kryo = "com.romix.akka.serialization.kryo.KryoSerializer"
}
serialization-bindings {
"java.io.Serializable" = none
"testes.Hello" = kryo
"main.testes.Hello" = kryo
"src.testes.Hello" = kryo
"Hello" = kyro
}
extensions = ["com.romix.akka.serialization.kryo.KryoSerializationExtension$"]
kryo {
type = "graph"
idstrategy = "incremental"
# custom-queue-builder = "a.b.c.KryoQueueBuilder"
buffer-size = 4096
max-buffer-size = -1
use-manifests = false
use-unsafe = false
post-serialization-transformations = "lz4,aes"
encryption {
aes {
mode = "AES/CBC/PKCS5Padding"
key = j68KkRjq21ykRGAQ
IV-length = 16
custom-key-class = "CustomAESKeyClass"
}
}
implicit-registration-logging = false
kryo-trace = false
# kryo-custom-serializer-init = "testes.Hello"
resolve-subclasses = false
#mappings {
# "testes.Hello" = 20,
#}
classes = [
"testes.Hello"
]
}
}
Я попробовал все пути, которые я могу придумать в сериализации.привязки, но ни один, кажется, не работает.Также вот класс Hello:
package testes;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoSerializable;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
public class Hello implements KryoSerializable {
long counter;
int hash;
String addr;
public Hello(long counter,int hash,String addr) {
this.counter = counter;
this.hash = hash;
this.addr = addr;
}
public Hello() {
}
public void read(Kryo kryo, Input in) {
counter = in.readLong();
hash = in.readInt();
addr = in.readString();
}
public void write(Kryo kryo, Output out) {
out.writeLong(counter);
out.writeInt(hash);
out.writeString(addr);
}
}
В github есть кое-что об использовании kryo.register (myClass), который я нигде не использую, поскольку я не совсем понимаю, куда мне нужно было бы поместитьчто.