通过Kafka发送的带有byte []的Kryo自定义序列化类

时间:2015-02-20 23:46:53

标签: apache-kafka apache-storm kryo

我正在尝试使用Kryo序列化一个类并通过Apache Kafka发送它。我正在序列化的对象有一个byte []作为类中的一个字段。序列化对象工作正常,但是当我尝试使用read方法对其进行反序列化时遇到了麻烦。我总是得到一个超出界限的数组:-2。

下面是我的Data对象类pojo和我的自定义序列化程序

public class Data {
  int dataSize;
  byte[] data;
}

public class DataSerializer extends Serializer<Data.class> {

 public void write (Kryo kryo, Output output, Data object) {
    output.writeInt(object.getDataSize());
    output.writeBytes(object.getData());
}

public Data read (Kryo kryo, Input input, Class<Data> type) {
    Data data = new Data();
    data.setDataSize = input.readInt();
    data.setData = input.readBytes(data.getDataSize());
    return data;
}

}

关于readBytes()和writeBytes()用法的文档很少。我这样做了吗?

0 个答案:

没有答案