【发布时间】:2023-01-03 06:39:39
【问题描述】:
当我在玩 repo kafka-quickstart 时,我注意到如果我在频道名称中添加句点,quarkus 将无法启动。 github repo 中的频道名称是“quotes”,我将其更改为“quotes.ch”。
属性文件条目更改为
mp.messaging.outgoing.报价.ch.value.serializer=io.quarkus.kafka.client.serialization.ObjectMapperSerializer
QuotesProcessor 中带有通道名称“quotes.ch”的传出注释
以及 QuotesResource 中带有“quotes.ch”的频道注释
处理器应用程序无法启动并出现以下异常 :: 如何在 quarkus 中处理此类名称?
线程 [39m [38;5;188m) [39m [38;5;151m无法启动应用程序(使用配置文件开发)[39m [38;5;203m: java.lang.IllegalArgumentException: SRMSG00071:频道配置无效 - 必须为频道 quotes 设置 connector 属性在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.lambda$new$0(ConnectorConfig.java:50)
在 java.base/java.util.Optional.orElseThrow(Optional.java:403)
在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.lambda$new$1(ConnectorConfig.java:50)
在 java.base/java.util.Optional.orElseGet(Optional.java:364)
在 io.smallrye.reactive.messaging.providers.impl.ConnectorConfig.(ConnectorConfig.java:49)
在 io.smallrye.reactive.messaging.providers.impl.ConfiguredChannelFactory.lambda$extractConfigurationFor$0(ConfiguredChannelFactory.java:85)
在 java.base/java.lang.Iterable.forEach(Iterable.java:75)
在 io.smallrye.reactive.messaging.providers.impl.ConfiguredChannelFactory.extractConfigurationFor(ConfiguredChannelFactory.java:74)
更新:::此问题/错误已在https://github.com/quarkusio/quarkus/pull/25490 中修复
【问题讨论】:
-
您可以尝试在频道名称周围添加引号吗? (我知道这里有太多的“引号”……:-))像这样:
mp.messaging.outgoing."quotes.ch".value.serializer=io.quarkus.kafka.client.serialization.ObjectMapperSerializer -
@Ladicek:我试过“quotes.ch”和“quotes.ch”但面临同样的问题。频道配置无效 - 必须为频道
quotes设置connector属性 -
@Ladicek:我添加了连接器属性 mp.messaging.outgoing."quotes.ch".connector=smallrye-kafka 没有解决问题
-
好的,那可能是一个错误。 SmallRye Reactive Messaging 确实对配置属性进行了相当多的操作,并且可能不支持引用语法。我建议在 SmallRye Reactive Messaging (github.com/smallrye/smallrye-reactive-messaging) 或 Quarkus 中提出问题。
-
是的,听起来像是 quarkus 集成中的错误。我们对“纯”smallrye 进行了测试。
标签: java quarkus smallrye quarkus-kafka