java - Avro 1.9.0 无法编译生成的 java 代码,错误消息为 : cannot find symbol method customEncode(org. apache.avro.io.Encoder)

标签 java avro

我有两个模式:

DataRecord.avsc:
{
    "namespace": "com.mycompany",
    "type": "record",
    "name": "DataRecord",
    "fields": [
        {"name": "id", "type": ["null", "string"], "default": null},   
        {"name": "type", "type": ["null", "string"], "default": null},       
        {"name": "content", "type": ["null", "string"], "default": null},
        {"name": "error", "type": ["null", "com.mycompany.Error"], "default": null} 
    ]
}

Error.avsc:
{
    "namespace": "com.mycompany",
    "type": "error",
    "name": "Error",
    "fields": [
    ]
}

它与 Avro 1.8.2 一起工作,但在我升级到 Avro 1.9.0 并尝试构建之后,它无法编译并生成以下错误日志:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5:compile (default-compile) on project avro-error-type-missing-custom-coding: Compilation failure: Compilation failure:
[ERROR] /workspaces/myspace/avro-error-type-missing-custom-coding/target/generated-sources/avro/com/mycompany/DataRecord.java:[570,17] cannot find symbol
[ERROR] symbol:   method customEncode(org.apache.avro.io.Encoder)
[ERROR] location: variable error of type com.mycompany.Error
[ERROR] /workspaces/myspace/avro-error-type-missing-custom-coding/target/generated-sources/avro/com/mycompany/DataRecord.java:[608,19] cannot find symbol
[ERROR] symbol:   method customDecode(org.apache.avro.io.ResolvingDecoder)

似乎SpecificRecordBase在Avro 1.9.0中有customEncode()customDecode()方法,但SpecificExceptionBase没有。

我该如何解决这个问题?

最佳答案

确保在 pom.xml 中包含 Avro 依赖项。 来源:https://avro.apache.org/docs/1.11.1/getting-started-java/

<dependency>
  <groupId>org.apache.avro</groupId>
  <artifactId>avro</artifactId>
  <version>1.11.1</version>
</dependency>

关于java - Avro 1.9.0 无法编译生成的 java 代码,错误消息为 : cannot find symbol method customEncode(org. apache.avro.io.Encoder),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977080/

相关文章:

docker - 用于Docker Swarm中所有服务的基本镜像中的Avro ?? NiFi-> Kafka-> PostgreSQL

java - JSON 到 Avro 转换异常 - 预期启动联合。已获取 VALUE_STRING

java - 此处不允许使用 void 类型 (java) (s != null)

java - 将充满数字的文本文档翻译成文字

java - 根据java文件生成Avro文件

google-bigquery - Avro 日期和时间与 BigQuery 的兼容性?

kotlin - 与Kotlin DSL兼容,期望出现Property <String>错误

java - ArrayList继承实现

java - 将特定字符串字符索引替换为 0

java - 在 Java 中缩放数组的最有效方法?