Kafka Connect 在添加 db.timezone 属性后找不到 ZoneRulesProvider



我正在分布式模式下运行Kafka Connect(Confluent(,最近在JDBC源连接器中添加了db.timezone属性。在这样做之后,当我加载连接器时,我看到了这个错误:

java.lang.NoClassDefFoundError:无法初始化类java.time.zone.ZoneRulesProvider\n\tat java.time.ZoneRegion.OId(ZoneRegion.java:120(\n\tat java.time.ZoneId.of(ZoneId.java:411(

这是从JDBCSourceConnectorConfig:中的代码中发生的

https://github.com/confluentinc/kafka-connect-jdbc/blob/master/src/main/java/io/confluent/connect/jdbc/source/JdbcSourceConnectorConfig.java#L807

如果我登录到我的Kafka Connect框并运行java -version,我会得到:

openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

如果我创建一个像下面这样的小Java程序并在这个盒子上运行,它会很好地工作:

import java.time.ZoneId;
import java.time.zone.ZoneRulesProvider;
import java.util.TimeZone;
public class TestTime {
public static void main(String[] args) {
String dbTimeZone = "America/New_York";
System.out.println(TimeZone.getTimeZone(ZoneId.of(dbTimeZone)));
System.out.println(ZoneRulesProvider.getAvailableZoneIds());
}
}

那么,为什么汇流/卡夫卡连接会在上面断开呢?为什么找不到ZoneRulesProvider

在我的服务器上重新启动kafka连接后,这个问题似乎已经消失了。

最新更新