我有 Jet 0.6 作为备份和一些安装了 hazelcast-nodejs-client 0.8.0 的 Node.JS 进程。我正在尝试从 Node 进程中推送一个对象,这正是 Jet 端类似对象的反映。但是我不明白如何确保在 Jet 方面这个 JS 对象将分别被序列化/反序列化。我觉得我需要向 Jet 表明这个 JSON 对象是 Data POJO 并且应该使用正确的序列化/反序列化。
在节点方面:
var data = {
id: someObject.did, // long
time: someObject.time, // long
};
dataMap.put(data.id, data).then(
function () {
console.log("Ok");
},
function (error) {
console.error(error);
}
);
在 Jet 方面:公共类 Data 实现 Serializable {
private long id;
private long time;
public Data(long id, long time) {
this.id = id;
this.time = time;
}
public long getId() {
return id;
}
public long getTime() {
return time;
}
更新:
我设法将调用堆栈追踪到一个DefaultSerializer.ts
显然负责将 JS 对象转换为Data
实例以通过MapProxy
服务发送到缓存的实例:
export class JsonSerializer implements Serializer {
getId(): number {
return -130;
}
read(input: DataInput): any {
return JSON.parse(input.readUTF());
}
write(output: DataOutput, object: any): void {
output.writeUTF(JSON.stringify(object));
}
}