当前位置: 首页 > 知识库问答 >
问题:

如何生成类型{"type":"string","avro.java.string":"String"}使用avro-tools-1.9.1.jarIDL的字段?

赵钊
2023-03-14

我们有JAVA gradle avro插件(davidmc24/gradle avro-plugin)生成施玛篇,并使用默认的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。阿帕奇。阿夫罗。util。Utf8不能转换为java。lang.String

所以,我猜是shema dissync,你能指出如何让avro-tools-1.9.1。jar还生成了类型为avro的字段。JAVA字符串关键字,所以我们可以谢谢你!

共有1个答案

沈俊美
2023-03-14

GenericDatumReader交易字符串和java.lang.字符串不同的代码在这里:

if (logicalType != null) {
  Conversion<?> conversion = getData().getConversionFor(logicalType);
  if (conversion != null) {
    return convert(datum, expected, logicalType, conversion);
  }
}

我的解决方案将使用schema注册表。通常,您将在注册表中有1到5个字节作为模式ID。可以使用该模式淡化数据。并获得总记录。我想这应该能解决你的问题。

 类似资料:
  • 在我的项目中,有两个和一些: 我得到的结果和错误如下: 生成的如下: 我认为和没有正确生成,因为它们是字符串类型,没有引号。 我不知道为什么它会以这种方式产生。请告诉我如何解决这个问题。

  • 我想把字典的value元素赋给一个字符串变量。 在swiftUI中,字典中的所有值元素都作为字符串返回?类型 什么时候有绳子?类型分配给字符串变量,该字符串变量在swiftUI应用程序中显示为可选(“字符串尝试显示”)。 如何去掉应用程序显示中的“可选”选项?

  • 给定一个函数,如果给定一个,则返回一个: 如何使用上述方法(或另一种方法)构建一个,其成员与键匹配,并与输出给出的类型匹配? 所以,我在找: 输出,其中是任意选择的,即在这一点上不重要。 我想到了使用,但我不知道如何在没有的情况下首先获得一个。

  • 我有这个打字代码: 给我以下错误: 严重性代码描述项目文件行抑制状态错误构建:“字符串|1”类型的参数不能分配给“字符串”类型的参数。 有人能帮我吗?我刚刚升级到新版本的Typescript,这条消息现在出现在多个地方。当我将鼠标悬停在categoryColumnWide上时,它显示这是一个“数字” 据我所知,我使用的是Typescript 2.1

  • Swift-String-Tools 在一个字符串中管理语言学和社会学,是个非常有帮助的工具。 

  • redis 字符串类型