使用ThriftData以Avro格式序列化Thrift数据时发生ClassCastException

时间:2019-06-10 15:27:31

标签: java serialization avro thrift

我们正在尝试找到一种将Thrift模式序列化为Avro格式的方法。

流程如下:

我们有一个使用Thrift的项目“ A”。输出结果对象是基于节俭的对象。

我们有使用Avro的项目“ B”。我们想阅读项目“ A”的Thrift模式,并为项目“ B”产生兼容的Avro模式。

我们尝试使用Apache Avro中提供的ThriftData来序列化Thrift模式

Schema schema = thriftData.getSchema(XYZ.class);

执行失败并显示消息

java.lang.RuntimeException: java.lang.ClassCastException: org.apache.thrift.meta_data.FieldValueMetaData cannot be cast to org.apache.thrift.meta_data.StructMetaData

任何对此的帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可能要检查 valueMetaData 属性,以检查其类型是否正确。