当前位置: 首页 > 知识库问答 >
问题:

Apache Ignite连接器-提供NoClassDefFoundError

籍兴文
2023-03-14

我正试图在Apache ignite Sink连接器的帮助下将kafka主题数据加载到ignite缓存中。面临以下问题。所有必需的JAR以及ignite配置(xml)文件都已就绪。

我很不确定为什么它要为IGniteSinkTask$StreamerContext$Holder抛出ConnectException和NoClassDefoundException。由于某些原因,java无法运行这些类。

public static class StreamerContext {
    private StreamerContext() {
    }

    public static Ignite getIgnite() {
        return IgniteSinkTask.StreamerContext.Holder.IGNITE;
    }

    public static IgniteDataStreamer getStreamer() {
        return IgniteSinkTask.StreamerContext.Holder.STREAMER;
    }

    private static class Holder {
        private static final Ignite IGNITE;
        private static final IgniteDataStreamer STREAMER;

        private Holder() {
        }

        static {
            IGNITE = Ignition.start(IgniteSinkTask.igniteConfigFile);
            STREAMER = IGNITE.dataStreamer(IgniteSinkTask.cacheName);
        }
    }
}

我如何解决这个问题?提前谢了。

[ERROR]2021-08-27 06:13:58,827[task-thread-IgniteSinkConnectorConnector_0-0]org.apache.kafka.connect.runtime.WorkerSinkTask DeliverMessages-workersinkTask{id=ignitesinkconnectorconnector_0-0}任务引发了一个未捕获且不可恢复的异常。任务正在被终止,并且在手动重新启动之前不会恢复。错误:无法初始化类org.apache.ignite.stream.kafka.connect.ignitesinktask$streamercontext$holder:无法初始化类org.apache.ignite.stream.kafka.connect.runtime.workersinn的org.apache.ignite.stream.kafka.stream.kafka.runtime.workersinn deliverMessages(workersinktask.java:586)在org.apache.kafka.connect.runtime.workersinktask.poll(workersinktask.java:329)在org.apache.kafka.connect.runtime.workersinktask.iteration(workersinktask.java:232)在org.apache.kafka.connect.runtime.workersinktask.java:232)在在java.base/java.util.concurrent.executors$runnableadapter.call(Exe)处的kafka.connect.runtime.workertask.run(workertask.java:234)cutors.java:515)在java.base/java.util.concurrent.futureTask.run(FutureTask.java:264)在java.base/java.util.concurrent.threadPoolExecutor.runworker(threadPoolExecutor.java:1128)在java.base/java.util.concurrent.threadPoolExecutor.java:1128)在java.base/java.util.concurrent.threadPoolExecutor$worker.run time.workerTask doRun-WorkerSinkTask{id=ignitesinkconnectorconnector_0-0}任务引发了一个未捕获且不可恢复的异常。任务正在被杀死,直到手动重新启动org.apache.kafka.connect.errors.connectException:由于不可恢复的异常正在退出WorkerSinkTask。在org.apache.kafka.connect.runtime.WorkerSinkTask.delivermessages(WorkerSinkTask.java:614)在e.WorkerSinkTask.iteration(WorkerSinkTask.java:232)位于org.apache.kafka.connect.runtime.workersinktask.execute(workersinktask.java:201)在org.apache.kafka.connect.runtime.workertask.dorun(workertask.java:185)在org.apache.kafka.connect.runtime.workertask.run(workertask.java:185)在java.base/java.util.concurrent.executors$runnableadapter.call(在java.base/java.util.concurrent.threadpoolexecutor.worker(threadpoolexecutor.java:1128)在java.base/java.lang.thread.run(threadpoolexecutor.javer.run(threadpoolexecutor.java:628)在java.base/java.lang.thread.run(threadpoolexecutor.javer.run(threadpoolexecutor.java:834)在java.base/java.lang.thread:.kafka.connect.ignitesinktask.put(ignitesinktask.java:118)在org.apache.kafka.connect.runtime.workersInkTask.DeliverMessages(workersInkTask.java:586)

共有1个答案

单于善
2023-03-14

如果Java虚拟机或ClassLoader实例试图加载类的定义(作为普通方法调用的一部分或作为使用新表达式创建新实例的一部分),但找不到该类的定义,则抛出NoClassDefFoundError。编译当前正在执行的类时已存在搜索的类定义,但再也找不到该定义。简单地说,该类在编译时可用,但在运行时丢失。

有关进一步调试,请参阅以下内容:

 类似资料:
  • 我试图为我的本地配置单元服务器实例(thrift)创建一个连接和getMataData()。 以下是我正在尝试的代码: 线程“main”java.lang.noClassDefFounderror:org/apache/hadoop/hive/metaexception在org.apache.hadoop.hive.jdbc.hivedriver.connect(Hivedriver.java:1

  • 问题内容: 我设置rabbitmqserver并使用以下步骤添加了用户: 我的celery配置是这样的: 我的代码是这样的: 当我尝试跑步时 我懂了 一切看起来都很完美!有人可以帮我我在这里想念的吗? 问题答案: 一旦我将代码部署到生产环境并将Celery升级到3.1.12,问题就解决了。我最初使用3.0.19,但后来进行了升级,但没有发现任何问题。感谢您的支持。

  • 它感觉到,在提供时,他将127.0.0.1关联为不可达。 提前谢谢你。:)

  • 我想在汇流提供的连接器上进行一些定制。有人能指导我怎么做吗?在我的用例中,我使用的是Http接收器连接器(https://www.confluent.io/hub/confluentinc/kafka-connect-http). 我找不到相同的git代码。

  • 我只想做一个upsert手术。我有一个JsonDocument,我有一个Couchbase服务器“123.456.789.1011”,里面有一个bucket,称为“TestBucket”。现在,当我使用端口8091的IP地址打开服务器时,它要求我输入用户名和密码,比如“uname”、“pwd”,输入后,它就打开了。我的桶没有任何密码。 这是我的代码,但问题总是在运行代码时,我会得到一个错误 Inv

  • 我想使用Eclipse Link作为我的JPA引擎。我们正在使用java.sql.Connection的子类,我想知道我是否可以强制Eclipse Link使用我的连接。我想以编程方式设置连接对象。 类似于