【问题标题】:Hazelcast bean serialisation in pythonpython中的Hazelcast bean序列化
【发布时间】:2017-12-30 20:48:03
【问题描述】:

我尝试使用两个 hazelcast 客户端,一个在 Java 中,一个在 python 中。

我的豆类正在关注,

class  Sample implements Serializable { 
        private static final long serialVersionUID = someId;

        private String val;

        public String getVal() {
            return val;
        }    
        public void setVal(String val) {
            this.val = val;
        }

}

Python 豆,

class Sample(object):
   def __init__(self):
      self.val = ''
   def getVal(self):
      return self.val
   def setVal(self,val):
      self.val =val

添加条目的Java代码,

ClientConfig config = getClientConfig(IP, PORT);
HazelcastInstance hazelCastInstance = HazelcastClient
                .newHazelcastClient(config);
IMap<String,Sample> map = hazelCastInstance.getMap("sample"); 
Sample s =new Sample();
s.setVal("test");
map.put("test", s);
hazelCastInstance.shutdown();

读取 bean 的 Python 代码,

my_async_map = client.get_map('sample')
future = my_async_map.values()
r = future.result()
print r

我收到了一个异常hazelcast.exception.HazelcastSerializationError: Missing Serializer for type-id:-100。当我使用IdentifiedDataSerializable。它工作正常。

如何反序列化由 java 序列化的 bean?

【问题讨论】:

    标签: java python hazelcast serializable


    【解决方案1】:

    不可能使用java.lang.Serializable,因为这种序列化格式特定于Java(或者更具体地说,特定于特殊的JVM 实现和Java 版本)。因此,您应该始终使用(Identified)DataSerializable(不是java.lang.Serializable 的扩展)、Portable 或任何多语言可用序列化,如 Protobuf、Apache Avro、Apache Thrift,...

    【讨论】:

    • 谢谢诺克塔瑞斯
    猜你喜欢
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多