java .lang.NoClassDefFoundError: не удалось инициализировать класс com.google.pubsub.v1.ProjectTopicName - PullRequest
3 голосов
/ 29 мая 2020

Я работаю над интеграцией Kafka с Google PubSub с помощью предоставленного здесь CloudPubSubConnector: https://github.com/GoogleCloudPlatform/pubsub/tree/master/kafka-connector#cloudpubsubconnector -configs с локально размещенным сервером Kafka, работающим на моем компьютере. Когда я запускаю коннектор, я получаю следующую трассировку стека:

[2020-05-29 15:20:01,678] ERROR WorkerSinkTask{id=CPSSinkConnector-9} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:186)
java.lang.NoClassDefFoundError: Could not initialize class com.google.pubsub.v1.ProjectTopicName
    at com.google.pubsub.kafka.sink.CloudPubSubSinkTask.createPublisher(CloudPubSubSinkTask.java:353)
    at com.google.pubsub.kafka.sink.CloudPubSubSinkTask.start(CloudPubSubSinkTask.java:143)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart(WorkerSinkTask.java:305)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:193)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:184)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
[2020-05-29 15:20:01,678] INFO Created connector CPSSinkConnector (org.apache.kafka.connect.cli.ConnectStandalone:112)
[2020-05-29 15:20:01,678] ERROR WorkerSinkTask{id=CPSSinkConnector-9} Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:187)
[2020-05-29 15:20:01,678] INFO Stopping CloudPubSubSinkTask (com.google.pubsub.kafka.sink.CloudPubSubSinkTask:386)

Я пытаюсь понять, в чем проблема. Соединитель работает нормально, если я размещаю Kafka на виртуальной машине GCP, и мои зависимости maven кажутся настроенными правильно, но по какой-то причине он не может найти класс ProjectTopicName.

UPDATE: RESOLVED Эта проблема не сохраняется при использовании Kafka версии 2.4.1 вместо 2.5.0

1 Ответ

0 голосов
/ 16 июня 2020

Это похоже, что ProjectTopicName случайно устарело и восстановлено в google-cloud-pubsub версии 1.104.0. Можете ли вы использовать вместо него TopicName или обновить библиотеку?

...