Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-3440

java.lang.NoClassDefFoundError when using Filter SMT in debezium-connector-mysql

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a Bug
    • Major
    • None
    • 1.5.0.Final
    • None
    • False
    • False
    • Undefined
    • Hide

      Here is our current Dockerfile

       
      FROM debezium/connect-base:1.5

      LABEL maintainer="Test"

      ENV DEBEZIUM_VERSION="1.5.0.Final" \
      MAVEN_REPO_CENTRAL="https://repo1.maven.org/maven2" \
      MAVEN_DEP_DESTINATION=$KAFKA_CONNECT_PLUGINS_DIR \
      MYSQL_MD5=0ad0c56977e5943496686aad69102fa3 \
      GROOVY_VERSION="3.0.5" \
      GROOVY_MD5=2260d5b622c7891e9a067b0ff4c3c7e4 \
      GROOVY_JSR223_MD5=26ba0e883ecfe8d0c415f188b35ac144 \
      SCRIPTING_MD5=06b8d129855888306b3c2db212348dd6

      RUN docker-maven-download debezium mysql "$DEBEZIUM_VERSION" "$MYSQL_MD5" && \
      docker-maven-download central org/codehaus/groovy groovy-jsr223 "$GROOVY_VERSION" "$GROOVY_JSR223_MD5" && \
      docker-maven-download central org/codehaus/groovy groovy "$GROOVY_VERSION" "$GROOVY_MD5" && \
      docker-maven-download central io/debezium debezium-scripting "$DEBEZIUM_VERSION" "$SCRIPTING_MD5"

      RUN cp $KAFKA_CONNECT_PLUGINS_DIR/groovy-3.0.5.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/groovy-3.0.5.jar && \
      cp $KAFKA_CONNECT_PLUGINS_DIR/groovy-jsr223-3.0.5.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/groovy-jsr223-3.0.5.jar && \
      cp $KAFKA_CONNECT_PLUGINS_DIR/debezium-scripting-1.5.0.Final.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/debezium-scripting-1.5.0.Final.jar

      Follow Filter example :

      transforms=filter
      transforms.filter.type=io.debezium.transforms.Filter
      transforms.filter.language=jsr223.groovy
      transforms.filter.condition=value.op == 'u' && value.before.id == 2

      Show
      Here is our current Dockerfile   FROM debezium/connect-base:1.5 LABEL maintainer="Test" ENV DEBEZIUM_VERSION="1.5.0.Final" \ MAVEN_REPO_CENTRAL="https://repo1.maven.org/maven2" \ MAVEN_DEP_DESTINATION=$KAFKA_CONNECT_PLUGINS_DIR \ MYSQL_MD5=0ad0c56977e5943496686aad69102fa3 \ GROOVY_VERSION="3.0.5" \ GROOVY_MD5=2260d5b622c7891e9a067b0ff4c3c7e4 \ GROOVY_JSR223_MD5=26ba0e883ecfe8d0c415f188b35ac144 \ SCRIPTING_MD5=06b8d129855888306b3c2db212348dd6 RUN docker-maven-download debezium mysql "$DEBEZIUM_VERSION" "$MYSQL_MD5" && \ docker-maven-download central org/codehaus/groovy groovy-jsr223 "$GROOVY_VERSION" "$GROOVY_JSR223_MD5" && \ docker-maven-download central org/codehaus/groovy groovy "$GROOVY_VERSION" "$GROOVY_MD5" && \ docker-maven-download central io/debezium debezium-scripting "$DEBEZIUM_VERSION" "$SCRIPTING_MD5" RUN cp $KAFKA_CONNECT_PLUGINS_DIR/groovy-3.0.5.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/groovy-3.0.5.jar && \ cp $KAFKA_CONNECT_PLUGINS_DIR/groovy-jsr223-3.0.5.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/groovy-jsr223-3.0.5.jar && \ cp $KAFKA_CONNECT_PLUGINS_DIR/debezium-scripting-1.5.0.Final.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-mysql/debezium-scripting-1.5.0.Final.jar Follow Filter example : transforms=filter transforms.filter.type=io.debezium.transforms.Filter transforms.filter.language=jsr223.groovy transforms.filter.condition=value.op == 'u' && value.before.id == 2

    Description

      I want to filter some records in a source connector that I created.

      transforms=filter
      transforms.filter.type=io.debezium.transforms.Filter
      transforms.filter.language=jsr223.groovy
      transforms.filter.condition=value.op == 'u' && value.before.id == 2

      The image contains in mysql plugin directory

      $ ls connect/
      debezium-connector-mysql debezium-scripting-1.5.0.Final.jar groovy-3.0.5.jar groovy-jsr223-3.0.5.jar
      $ ls connect/debezium-connector-mysql/
      CHANGELOG.md COPYRIGHT.txt LICENSE.txt README_ZH.md debezium-api-1.5.0.Final.jar debezium-core-1.5.0.Final.jar failureaccess-1.0.1.jar mysql-binlog-connector-java-0.25.0.jar
      CONTRIBUTE.md LICENSE-3rd-PARTIES.txt README.md antlr4-runtime-4.7.2.jar debezium-connector-mysql-1.5.0.Final.jar debezium-ddl-parser-1.5.0.Final.jar guava-30.0-jre.jar mysql-connector-java-8.0.21.jar

       Here is the issue generated : 

      Caused by: java.lang.ClassNotFoundException: io.debezium.config.EnumeratedValueCaused by: java.lang.ClassNotFoundException: io.debezium.config.EnumeratedValue at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 32 more

       

      Adding debezium-core-1.5.0.Final.jar did not solve this dependency issue.

      Any idea how to solve this ?

      Attachments

        Activity

          People

            Unassigned Unassigned
            ohohleo Leo Martin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: