我使用的是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在现场使用我的自定义序列化器?
答案 0 :(得分:2)
每当您将序列化移交给Java Serialization(Serializable或Externalizable)时,内部序列化方案将不再起作用。基本上,一旦Serializable,它永远可序列化。这就是说有两个选项,使类“Test”至少是DataSerializable或使类“GeoPoint”可序列化/可外化。