kafka SAP Hana connector - java.lang.NoClassDefFoundError

0

I am provisioning a kafka connector for SAP Hana. After I provision the connector, I check its status by browsing to http://localhost:8083/connectors/sapHana-source/status, but I see it failed:

{
  "name": "sapHana-source",
  "connector": {
    "state": "RUNNING",
    "worker_id": "127.0.1.1:8083"
  },
  "tasks": [
    {
      "id": 0,
      "state": "FAILED",
      "worker_id": "127.0.1.1:8083",
      "trace": "java.lang.BootstrapMethodError:     java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction0$mcV$sp\n\tat     com.sap.kafka.connect.source.GenericSourceTask.start(GenericSourceTask.scala:34)\n\tat     org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:199)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction0$mcV$sp\n\t... 9 more\nCaused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction0$mcV$sp\n\tat java.net.URLClassLoader.findClass(URLClassLoader.java:382)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:424)\n\tat org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:357)\n\t... 9 more\n"
    }
  ],
  "type": "source"
}

I am provisioning the connector with this command:

curl -H "Accept: application/json" -H "Content-Type: application/json" -sX PUT "localhost:8083/connectors/sapHana-source/config" -d @SapHana_Source_Connector.json | jq

and the contents of SapHana_Source_Connector.json are:

{

"connector.class": "com.sap.kafka.connect.source.hana.HANASourceConnector",

"tasks.max": "1",

"topics":"sap-stock-inv",

"mode": "bulk",

"connection.url": "jdbc:sap://10.80.134.204:30015/?trace=traceFile.txt",

"connection.user": "DSD_USER",

"connection.password": "Init123*",

"sap-stock-inv.table.name": "\"_SYS_BIC\".\"PVH.POSDTA.InventoryVisibility.Store/ODATA_INV_VIS_EAN_NEXT_GR\""

}

When I run this command, I get a success message. (Same JSON is printed back to console). I've also confirmed that I get an error message when I purposely set the connector.class to an invalid value.

Steps I have tried:

  • Added this line to /etc/environments file: export CLASSPATH="/home/jpathe/Desktop/confluent-5.2.1/confluent-5.2.1/share/java"
  • Added this line to /etc/kafka/connect-distributed.properties and /etc/kafka/connect-standalone.properties: plugin.path=/home/jpathe/Desktop/confluent-5.2.1-web/confluent-5.2.1/share/java

Does anyone know how I can solve the NoClassDefFoundError?

RedShirtEnsign

Posted 2019-07-11T13:55:32.090

Reputation: 1

update: the JAR file was compiled on a Mac. The error occurs on an Ubuntu VM with a higher version of Java installed. The error does not happen on the Mac. Next steps: compile the JAR file on Linux and determine if the issue is caused by OS or java version. – RedShirtEnsign – 2019-07-15T07:48:22.463

Answers

0

This worked after compiling the JAR file on Linux

RedShirtEnsign

Posted 2019-07-11T13:55:32.090

Reputation: 1