我们有 JAVA gradle avro 插件 (davidmc24/gradle-avro-plugin) 生成 shema,并使用默认的 stringType 字符串,它将像这样生成 JAVA POJO:
Class A{
Shema = ...,{"type":"string","avro.java.string":"String"}...
string batchName;
}
然后我们使用相同的avdl文件生成C#包,我们的解决方案是首先使用avro-tools-1.9.1.jar生成avsc文件,它将像这样生成avsc
"fields" : [ {
"name" : "batchName",
"type" : "string"
},
我们有一个 C# producer 和 java consumer,在这种情况下,batchName 不能在 JAVA consumer 端反序列化,我们得到以下错误:
org.apache.avro.util.Utf8 cannot be cast to java.lang.String
所以,我的猜测是shema不同步,你能帮忙指出如何让avro-tools-1.9.1.jar也生成类型为avro.java.string关键字的字段,所以我们可以谢谢!