使用 ThriftData 以 Avro 格式序列化 Thrift 数据时出现 ClassCastException

amr*_*raf 7 java serialization thrift avro

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

流程如下:

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

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

我们已经尝试使用Apache Avro 中提供的ThriftData来序列化 Thrift 架构

Schema schema = thriftData.getSchema(XYZ.class);
Run Code Online (Sandbox Code Playgroud)

执行失败并显示消息

java.lang.RuntimeException: java.lang.ClassCastException: org.apache.thrift.meta_data.FieldValueMetaData cannot be cast to org.apache.thrift.meta_data.StructMetaData
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激!

yu.*_*ets 0

您可能需要检查valueMetaData属性以检查它是否具有正确的类型。