从scala启动ksqlRestart应用程序并获取NoSuchMethodError org.apache.kafka.streams.StreamsConfig.getConsumerConfigs

从scala启动ksqlRestart应用程序并获取NoSuchMethodError org.apache.kafka.streams.StreamsConfig.getConsumerConfigs,scala,apache-kafka,apache-kafka-streams,ksqldb,Scala,Apache Kafka,Apache Kafka Streams,Ksqldb,我试图编写一个程序,使我能够在Scala中对Kafka主题运行预定义的KSQL操作,但我不想每次都打开KSQL Cli。因此,我想从Scala程序中启动KSQL“服务器”。如果我正确理解KSQL源代码,我必须构建并启动KsqlRestApplication: def restServer = KsqlRestApplication.buildApplication(new KsqlRestConfig(defaultServerProperties), true, new VersionChe

我试图编写一个程序,使我能够在Scala中对Kafka主题运行预定义的KSQL操作,但我不想每次都打开KSQL Cli。因此,我想从Scala程序中启动KSQL“服务器”。如果我正确理解KSQL源代码,我必须构建并启动KsqlRestApplication:

def restServer = KsqlRestApplication.buildApplication(new 
KsqlRestConfig(defaultServerProperties), true, new VersionCheckerAgent 
{override def start(ksqlModuleType: KsqlModuleType, properties: 
Properties): Unit = ???})
但是当我尝试这样做时,我得到以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.kafka.streams.StreamsConfig.getConsumerConfigs(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
at io.confluent.ksql.rest.server.BrokerCompatibilityCheck.create(BrokerCompatibilityCheck.java:62)
at io.confluent.ksql.rest.server.KsqlRestApplication.buildApplication(KsqlRestApplication.java:241)
我在BrokerCompatibilityCheck中查看了函数调用,在create函数中,它调用StreamsConfig.getConsumerConfigs(),使用2个字符串作为参数,而不是中定义的参数

我的KSQL和卡夫卡版本是不兼容还是我做错了什么?
我使用的是KSQL版本4.1.0-SNAPSHOT和Kafka版本1.0.0。

是的,NoSuchMethodError通常表示库之间的版本不兼容

您发布的链接是指向javadoc for kafka 0.10.2的。该方法在1.0中没有更改,但在即将发布的1.1中,它只需要2个字符串: . 这表明您正在使用的KSQL版本(4.1.0-SNAPSHOT)取决于kafka streams的1.1版,该版本目前处于候选发布阶段,我认为应该很快推出:

根据该电子邮件,您可以在apache staging repo中找到最新的(1.1.0-rc2)工件: