kryo 在序列化时如果是不可修改的类默认是有问题的.
解决方案如下:
/**
* 返回新的kryo
*
* @return
*/
private Kryo newKryo() {
Kryo kryo = new Kryo();
// set property
kryo.setDefaultSerializer(serializerClass);
for (Class<?> clazz : registerClassList) {
kryo.register(clazz);
}
UnmodifiableCollectionsSerializer.registerSerializers(kryo);
SynchronizedCollectionsSerializer.registerSerializers(kryo);
return kryo;
}
需要引入jar包:
<dependency>
<groupId>de.javakaffee</groupId>
<artifactId>kryo-serializers</artifactId>
<version>0.38</version>
<!--去掉默认 的kryo-3.0.3 的依赖 使用统一的4.0.0->
<exclusions>
<exclusion>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
</exclusion>
</exclusions>
</dependency>