apache-kafka-connect - 添加 db.timezone 属性后,Kafka Connect 找不到 ZoneRulesProvider
问题描述
我在分布式模式下运行 Kafka Connect (Confluent),并且最近将 db.timezone 属性添加到我的 JDBC 源连接器中。这样做之后,我在加载连接器时看到了这个错误:
java.lang.NoClassDefFoundError: 无法初始化类 java.time.zone.ZoneRulesProvider\n\tat java.time.ZoneRegion.ofId(ZoneRegion.java:120)\n\tat java.time.ZoneId.of(ZoneId.java :411)
这发生在 JDBCSourceConnectorConfig 中的这段代码中:
如果我登录到我的 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());
}
}
那么为什么 confluent/kafka connect 会中断呢?为什么会找不到ZoneRulesProvider
?
解决方案
在我的服务器上重新启动 kafka connect 后,此问题似乎已经消失。
推荐阅读
- android - 共享房间数据库备份导致文件不受支持或为空
- r - 在 R 编程中使用变量打印下一个闰年的值
- javascript - Leaflet.JS 试图扩展 Circle 类
- java - Java 大型 2D 双矩阵不会在 Eclipse 中打印到控制台
- c# - 如何在控制器中插入否定测试用例?
- wordpress - 如何修复 WordPress 中的“URL 错误 #:操作在 300001 毫秒后超时,收到 0 个字节”
- django - 试图用 django 频道围绕消息流
- amazon-web-services - 如何使用 AWS SNS 向特定用户发送通知?
- wso2 - capp 文件中的 WSO2 EI 自定义招摇
- javascript - 删除 json 对象中的动态不必要属性