首页 文章

理解BinaryObjects点燃

提问于
浏览
1

我有一些数据,我将以 BinaryObject 格式存储 . 我正在使用 DataStreamer 将数据放入缓存中,并使用 StreamReceiver 来处理它们 . 以下是我创建 BinaryObject 的方法:

String typeName; // Some arbitrary string, does not correspond to any FQCN
BinaryObjectBuilder bldr = ignite.binary().builder();
String key;
//init
IgniteDataStreamer<String, BinaryObject> strmr = ignite.dataStreamer(typeName);
//set receiver
strmr.addData(key, bldr.build());

但在接收器代码中我有这个:

@Override
public void receive(IgniteCache<String, BinaryObject> cache, Collection<Map.Entry<String, BinaryObject>> entries) throws IgniteException {
    String key = entry.getKey();
    BinaryObject value = entry.getValue(); //< ----Here is where problems come
    //...
}

在stackTrace的底部我得到了这个:

java.lang.ClassNotFoundException: Unknown pair [platformId=0, typeId=-462125592]

这是什么意思?我是否正确点燃尝试将二进制对象反序列化为某种类型,但是没有找到我提供的类型名称的类?

1 回答

  • 2

    尝试在向其添加任何数据之前在streamer上设置 keepBinary 标志:

    strmr.keepBinary(true);
    

相关问题