嵌套对象上的 Hazelcast 序列化异常
Hazelcast serialization exception on nested Object
我正在使用 Spring Boot 1.5.1 和 Hazelcast 3.7.5。
缓存此实体的对象时出现 NotSerializableException(GeoPoint
不可序列化):
public class Test implements Serializable {
private String title;
private GeoPoint location;
}
我为此字段添加了自定义序列化程序:
SerializerConfig sc = new SerializerConfig()
.setImplementation(new GeoPointSerializer())
.setTypeClass(GeoPoint.class);
config.getSerializationConfig().addSerializerConfig(sc);
但例外仍然存在。
当我直接缓存 GeoPoint 时它确实有效:
@Cacheable("point")
public GeoPoint test() {
return new GeoPoint(0, 0);
}
我如何告诉 Hazelcast 对该字段使用我的自定义序列化程序?
每当您将序列化交给 Java 序列化(可序列化或可外部化)时,内部序列化方案将不再有效。它基本上是一次可序列化,永远可序列化。也就是说有两个选项,使 class "Test" 至少 DataSerializable 或使 class "GeoPoint" Serializable / Externalizable.
我正在使用 Spring Boot 1.5.1 和 Hazelcast 3.7.5。
缓存此实体的对象时出现 NotSerializableException(GeoPoint
不可序列化):
public class Test implements Serializable {
private String title;
private GeoPoint location;
}
我为此字段添加了自定义序列化程序:
SerializerConfig sc = new SerializerConfig()
.setImplementation(new GeoPointSerializer())
.setTypeClass(GeoPoint.class);
config.getSerializationConfig().addSerializerConfig(sc);
但例外仍然存在。
当我直接缓存 GeoPoint 时它确实有效:
@Cacheable("point")
public GeoPoint test() {
return new GeoPoint(0, 0);
}
我如何告诉 Hazelcast 对该字段使用我的自定义序列化程序?
每当您将序列化交给 Java 序列化(可序列化或可外部化)时,内部序列化方案将不再有效。它基本上是一次可序列化,永远可序列化。也就是说有两个选项,使 class "Test" 至少 DataSerializable 或使 class "GeoPoint" Serializable / Externalizable.