【问题标题】:Quarkus SmallRye Messaging Kafka Avro native compilation failedQuarkus SmallRye Messaging Kafka Avro 本机编译失败
【发布时间】:2021-01-10 01:33:08
【问题描述】:

我正在将 SmallRye 反应式消息与 Kafka 与 Confluent Registry 和 AVRO 一起使用。 它工作正常,如本博客中所述https://quarkus.io/blog/kafka-avro/ 但是在与博客相关的源代码中似乎不适用于本机编译:https://github.com/cescoffier/quarkus-kafka-and-avro

我的环境也有同样的问题(Avro 1.10.0 和 Confluent Registry) 您将在此消息的末尾看到日志。

是否计划在原生支持上工作?或者可能是一个必须打开的问题?

备注:使用 Kafka Streams + Avro + Confluent Registry 的 quarkus avro 扩展在本机中运行良好。

谢谢。

[kafka-and-avro-1.0.0-SNAPSHOT-runner:96219] 分析:28 016,32 毫秒,2,72 GB 错误:应该在运行时初始化的类在图像构建期间被初始化: me.escoffier.quarkus.Movie 要求在运行时初始化该类(来自功能 io.quarkus.runner.AutoFeature.beforeAnalysis)。要查看 me.escoffier.quarkus.Movie 被初始化的原因,请使用 -H:+TraceClassInitialization org.apache.avro.generic.GenericDatumReader 要求在运行时初始化该类(来自功能 io.quarkus.runner.AutoFeature.beforeAnalysis)。要查看 org.apache.avro.generic.GenericDatumReader 被初始化的原因,请使用 -H:+TraceClassInitialization

com.oracle.svm.core.util.UserError$UserException:应该在运行时初始化的类在映像构建期间被初始化: me.escoffier.quarkus.Movie 要求在运行时初始化该类(来自功能 io.quarkus.runner.AutoFeature.beforeAnalysis)。要查看 me.escoffier.quarkus.Movie 被初始化的原因,请使用 -H:+TraceClassInitialization org.apache.avro.generic.GenericDatumReader 要求在运行时初始化该类(来自功能 io.quarkus.runner.AutoFeature.beforeAnalysis)。要查看 org.apache.avro.generic.GenericDatumReader 被初始化的原因,请使用 -H:+TraceClassInitialization

【问题讨论】:

    标签: apache-kafka native avro quarkus smallrye-reactive-messaging


    【解决方案1】:

    问题是要在本机中使用 avro,您必须向 graalvm 指示它必须使用本机的类。

    要在原生模式下将 quarkus 与 avro 一起使用,您需要在文件 reflection-config.json 中声明所有 avro 对象

    我有一个关于github的例子

    【讨论】:

    • 不要主要依赖链接来演示如何解决这个问题,请在您的 Stack Overflow 答案中提供相关示例。包含更多信息的链接很好,但您的答案应该是独立的,并且没有它也很容易理解。
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    猜你喜欢
    • 2022-10-13
    • 1970-01-01
    • 2019-12-05
    • 2021-11-19
    • 2022-01-20
    • 2021-03-11
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多