反序列化hazelcast地图对象时,读取DataSerializable时出现问题,名称空间:0,ID:0

我有两个字段扩展了hazelcast DataSerializable接口的简单对象。放入该地图可以正常工作,但是在使用相同名称进行检索时,它会显示异常消息:“读取DataSerializable时出现问题,名称空间:0,ID:0”。

我正在使用hazelcast客户端“ 3.12.4”和具有最新docker基本映像的hazelcast群集。

如果有人遇到类似问题,请让我知道。为了简单起见,到目前为止,我还没有使用过任何数据库。我的hazelcast客户端仅在IMap中保存一个简单的对象,然后从IMap中检索。

请在下面找到我的代码段:

域对象:

routes.xml

Hazelcast保存并获取:

public class Employee implements DataSerializable {

    private String name;
    private Integer serialNumber;

    public Employee() {
    }

    public Employee(String name,Integer serialNumber) {
        this.name = name;
        this.serialNumber = serialNumber;
    }

    ** Getter and Setter **

    @Override
    public void readData(ObjectDataInput in) throws IOException {
        this.name = in.readUTF();
        this.serialNumber = (Integer) in.readInt();
    }

    @Override
    public void writeData(ObjectDataOutput out) throws IOException {
        out.writeUTF(name);
        out.writeInt(serialNumber);
    }

预先感谢您的帮助。

zkshow 回答:反序列化hazelcast地图对象时,读取DataSerializable时出现问题,名称空间:0,ID:0

根据评论对话,这里的答案似乎是双重的

map.get(k)工作正常,因此序列化逻辑本身似乎可以纠正。

为了查询DataSerializable对象,域对象必须位于服务器的类路径上。服务器必须完全反序列化该类型的每个对象,以确定它是否与查询谓词匹配。要求使用“ -e CLASSPATH”选项扩展Docker容器的类路径。

本文链接:https://www.f2er.com/3093433.html

大家都在问