LỖI Dừng do lỗi (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io / debezium / use / IoUtil

Sep 23 2020

Mục tiêu

Tôi đang cố gắng kết nối với Cơ sở dữ liệu Oracle (12c) của mình từ Kafka Connect (lý tưởng là ở chế độ phân tán) bằng trình kết nối Debezium (1.2.4.Final). Phiên bản Kafka tôi đang sử dụng là 2.13-2.6.0.

Lệnh được sử dụng

Như đã đề cập ở đây , tôi đang chạy lệnh này:

C:\Users\username\Downloads\kafka>bin\windows\connect-distributed.bat config\connect-distributed.properties

lỗi

Lỗi tôi nhận được là:

LỖI Dừng do lỗi (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io / debezium / use / IoUtil tại io.debezium.connector.oracle.Module. (Module.java:19) tại io.debezium.connector.oracle.OracleConnector.version (OracleConnector.java:23) tại org.apache.kafka.connect.runtime.isolation.DeleratingClassLoader.versionFor (DelegateClassLoader.java:390) tại org.apache.kafka.connect. runtime.isolation.DeleratingClassLoader.versionFor (DelegateClassLoader.java:395) tại org.apache.kafka.connect.runtime.isolation.DeleratingClassLoader.getPluginDesc (DelegateClassLoader.java:365) tại org.apache.kafka.connect.runtolation. DelegateClassLoader.scanPluginPath (DelegateClassLoader.java:337) tại org.apache.kafka.connect.runtime.isolation.DelectingClassLoader.scanUrlsAndAddPlugins (DelegateClassLoader.java:337) tại org.apache.kafka.connect. DelegateClassLoader.java:260) tại org.apache.kafka.connect.runtime.isola tion.DelectingClassLoader.initPluginLoader (DelegateClassLoader.java:229) tại org.apache.kafka.connect.runtime.isolation.DeleratingClassLoader.initLoaders (DelegateClassLoader.java:206) tại org.apache.kafgins.connect.runtolation.Pruntgins.connect.runtolation.Pruntgins. (Plugins.java:61) tại org.apache.kafka.connect.cli.ConnectDistributed.startConnect (ConnectDistributed.java:91) tại org.apache.kafka.connect.cli.ConnectDistributed.main (ConnectDistributed.java:78) Nguyên nhân bởi: java.lang.ClassNotFoundException: io.debezium.util.IoUtil tại java.net.URLClassLoader.findClass (URLClassLoader.java:382) tại java.lang.ClassLoader.loadClass (ClassLoader.java:418) tại org.apache. kafka.connect.runtime.isolation.PluginClassLoader.loadClass (PluginClassLoader.java:104) tại java.lang.ClassLoader.loadClass (ClassLoader.java:351) ... 13 khác

Cài đặt

Trong connect-distributed.properties của tôi, tôi có cái này:

plugin.path=C:/Users/username/Downloads/kafka/libs/debezium

Và bên trong thư mục debezium (theo đề xuất của Gunnar từ nhận xét trong câu hỏi này ), tôi có những cái lọ này:

Tôi cũng đã thêm đường dẫn plugin trong% PATH% như sau:

echo %PATH% | findstr debezium

XXX; C: \ Users \ tên người dùng \ Tải xuống \ kafka \ libs \ debezium;

Cứu giúp

Mọi sự trợ giúp sẽ được đánh giá rất cao, vì tôi hy vọng sẽ thay thế việc thăm dò cơ sở dữ liệu của mình bằng trình kết nối debezium này có vẻ là một cách tiếp cận tốt hơn. Cảm ơn!

Trả lời

1 jumping_monkey Sep 23 2020 at 10:45

Giải pháp từ Gunnar ở đây hoạt động! (Lời giải thích của anh ấy cũng có nếu bạn muốn xem thử.)

plugin.path=C:\\Users\\username\\Downloads\\kafka\\libs

và điều đó cũng hoạt động:

plugin.path=C:/Users/username/Downloads/kafka/libs
plugin.path=C:\Users\username\Downloads\kafka\libs
plugin.path=/Users/username/Downloads/kafka/libs

Sai lầm là: plugin.pathphải lên đến libs chứ không phải libs / debezium