Search code examples
javamysqldebeziummysqlbinlog

java.lang.NoSuchMethodError on upgrading to latest debezium ( void org.apache.kafka.connect.storage.KafkaOffsetBackingStore init )


We have a simple spring boot 3.1 app that wraps debezium. We upgraded to the latest version 2.4.0.Final. Now getting this error at startup:

ERROR io.debezium.embedded.EmbeddedEngine - Unable to instantiate OffsetBackingStore class 'org.apache.kafka.connect.storage.KafkaOffsetBackingStore'
java.lang.NoSuchMethodError: 'void org.apache.kafka.connect.storage.KafkaOffsetBackingStore.<init>(java.util.function.Supplier, java.util.function.Supplier, org.apache.kafka.connect.storage.Converter)'
        at io.debezium.embedded.KafkaConnectUtil.kafkaOffsetBackingStore(KafkaConnectUtil.java:75)
        at io.debezium.embedded.EmbeddedEngine.initializeOffsetStore(EmbeddedEngine.java:826)
        at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:714)
        at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:229)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

The dependencies show up like this:

+- io.debezium:debezium-embedded:jar:2.4.0.Final:compile
|  +- io.debezium:debezium-core:jar:2.4.0.Final:compile
|  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.15.0:compile
|  +- org.apache.kafka:connect-api:jar:3.4.0:compile
|  |  \- javax.ws.rs:javax.ws.rs-api:jar:2.1.1:runtime
|  +- org.apache.kafka:connect-runtime:jar:3.4.0:compile
|  |  +- org.apache.kafka:connect-transforms:jar:3.4.0:compile
|  |  +- org.apache.kafka:kafka-tools:jar:3.4.0:runtime
|  |  |  +- org.apache.kafka:kafka-server-common:jar:3.4.0:runtime

Solution

  • Upgrade to kafka 3.5.1, the version used in debezium 2.4.0.Final