Kafka Connect cant'找到开发插件的类

时间:2017-07-25 09:44:58

标签: java apache-kafka apache-kafka-connect

我为实现SinkConnector的kafka connect创建了一个插件,我使用gradle jar任务将其打包到jar中:

document.addEventListener("DOMContentLoaded", function() {

  var
    example = document.getElementById('example1'),
    hot1;

  hot1 = new Handsontable(example, {
    data: [
        ['', '', '', ''],
        [1, 2, 3, '=SUM(A2:C2)'],
      [1, 2, 3],
    ],
    width: 584,
    height: 320,
    rowHeaders: true,
    formulas: true,
    colHeaders: true,
    columns: [1, 2, 3, 4],
    columnSummary: function () {
        var summary = [];
        for (var i = 0; i < 4; i++) {
        summary.push({
            ranges: [[1, 2]],
          destinationRow: 0,
          destinationColumn: i,
          type: 'sum',
          forceNumeric: true,
          sourceColumn: i
        });         
      }

      return summary;
    }
  });

});

我将它复制到文件夹中的kafka集群中,然后设置CLASSPATH =我的jar所在的位置。 然后我执行kafka脚本来启动独立连接,它给我一个错误,说我的课程无法找到:

{{1}}

知道为什么不拿起我的罐子?

谢谢

================================

编辑:Kakfa Connect版本10.2.1,根据脚本,类路径计算如下:CLASSPATH =&#34; $ CLASSPATH&#34;:&#34; $ KAFKA_HOME / libs / *&#34;

1 个答案:

答案 0 :(得分:1)

您可以检查.jar文件以确保该类存在。使用Scala作为JVM shell:

// Or Maybe try $CLASSPATH with the full classpath that you are using.
scala -classpath path-to-jar.jar
// If class is not loaded, this will trigger an error.
classOf[mypackage.SplunkSinkConnector]

仅供参考,我正在这样做,使用自定义.jar插件,通过CLASSPATH环境变量加载Kafka Connect。

UPDATE :这是我的插件的build.gradle文件。 IMO,这是构建具有一些简单依赖关系的Java .jar的最简单方法。我使用gradle jar构建了jar,它将在./build/libs/(project-name).jar创建:

apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://packages.confluent.io/maven/" }
}

configurations {
    all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
    all*.exclude group: 'log4j'
}

dependencies {
    compile 'io.confluent:kafka-connect-storage-partitioner:3.2.1'
    compile 'org.apache.kafka:connect-api:0.10.2.1'

    testCompile 'junit:junit:4.+'
}

idea {
    project {
        languageLevel = '1.8'
    }
}