Cannot register custom exporter (Mongodb exporter)

Hey guys, I am traying build custom exporter(for export my records to MongoDB) and I use it this ref ( GitHub - crossid/zeebe-mongo-exporter and I used also - spring boot 3.2.0 and my

  • dependecies
    [ <zeebe-client-java.version>8.4.0</zeebe-client-java.version>,
    <spring-boot-starter-camunda.version>8.4.0</spring-boot-starter-camunda.version>,
    <zeebe-exporter-api.version>8.2.3</zeebe-exporter-api.version> ]
  1. Implemented a simple zeebe exporter ( GitHub - crossid/zeebe-mongo-exporter)
application.yaml - zeebe:
  client:
    broker:
      gateway-address: 127.0.0.1:26500
    security:
      plaintext: true

After I build my exporter jar custom exporter implmentation I configure Zeebe to load the exporter

  1. Register exporter in Zeebe application.yaml using started C8 locally docker-compose up -d ( GitHub - camunda/camunda-platform: Links to Camunda Platform 8 resources, releases, and local development config

  1. Restarting Zeebe container to load new configguration

and on startup this is the error that I metting

What am I missing ? I would greatly appreciate any guidance or suggestions on how to address these problems.

Thank you for your help !!!

Hi @ethio-link, welcome to the forums! The first thing I noticed was that the classname in the log is different than in your yaml, but I assume they actually match or you’d likely see a different error message.

I suspect your issue with with Docker. You can’t mount a relative path file as a volume, you need to use the full path. Here’s a Stack Overflow answer that details this.

Hey @nathan.loding,

Thanks for your response and I greatly appreciate !

  • Mount has been done for config with application.yaml

Still the error is the same

2024-03-02 23:00:51.732 [] [main] [] DEBUG
2024-03-02T23:00:51.733935443Z       io.camunda.zeebe.broker.exporter - Exporter configured with ElasticsearchExporterConfiguration{url='http://elasticsearch:9200', requestTimeoutMs=30000, index=IndexConfiguration{prefix='zeebe-record', createTemplate=true, command=false, event=true, rejection=false, decision=true, decisionEvaluation=true, decisionRequirements=true, deployment=true, error=true, incident=true, job=true, jobBatch=false, message=true, messageBatch=false, messageSubscription=true, process=true, processInstance=true, processInstanceBatch=false, processInstanceCreation=true, processInstanceMigration=true, processInstanceModification=true, processMessageSubscription=true, variable=true, variableDocument=true, checkpoint=false, timer=true, messageStartEventSubscription=true, processEvent=false, deploymentDistribution=true, escalation=true, signal=true, signalSubscription=true, resourceDeletion=true, commandDistribution=true, form=true, userTask=true, compensationSubscription=true}, bulk=BulkConfiguration{delay=5, size=1, memoryLimit=10485760}, retention=RetentionConfiguration{isEnabled=false, minimumAge=30d, policyName='zeebe-record-retention-policy'}, authentication=AuthenticationConfiguration{Confidential information}}
2024-03-02T23:00:51.775531749Z 2024-03-02 23:00:51.774 [] [main] [] INFO 
2024-03-02T23:00:51.775573006Z       org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger - 
2024-03-02T23:00:51.775578746Z 
2024-03-02T23:00:51.775583072Z Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-03-02T23:00:51.905113335Z 2024-03-02 23:00:51.874 [] [main] [] ERROR
2024-03-02T23:00:51.905159561Z       org.springframework.boot.SpringApplication - Application run failed
2024-03-02T23:00:51.905165648Z java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar', className='com.swisscom.zeebemongoexporter.MongoExporter', args={url=http://localhost:27017/, dbName=zeebe, bulk={delay=5, size=1000}, col={prefix=zeebe-record, createCollections=true, command=false, event=true, rejection=false, deployment=false, error=false, incident=false, job=false, jobBatch=false, message=false, messageSubscription=false, variable=false, variableDocument=false, workflowInstance=true, workflowInstanceCreation=false, workflowInstanceSubscription=false, timers=false}}}
2024-03-02T23:00:51.905171593Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:150) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905176849Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:71) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905180542Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:49) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905203213Z 	at io.camunda.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:87) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905207426Z 	at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905211026Z 	at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.905214501Z 	at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.905217891Z 	at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.905221170Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905224564Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905228078Z 	at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905241553Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905245973Z 	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905249301Z 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905252645Z 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905255815Z 	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905259055Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905262571Z 	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905265742Z 	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905268984Z 	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905272276Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:341) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.905275618Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905278901Z Caused by: io.camunda.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [MongoExporter]: cannot load specified class
2024-03-02T23:00:51.905282122Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:83) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905285658Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905289122Z 	... 21 more
2024-03-02T23:00:51.905298983Z Caused by: java.lang.ClassNotFoundException: com.swisscom.zeebemongoexporter.MongoExporter
2024-03-02T23:00:51.905302782Z 	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905306237Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905309431Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-02T23:00:51.905312899Z 	at io.camunda.zeebe.util.jar.ExternalJarClassLoader.loadClass(ExternalJarClassLoader.java:57) ~[zeebe-util-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905316263Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:80) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905320382Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.905323983Z 	... 21 more
2024-03-02T23:00:51.912781347Z 2024-03-02 23:00:51.910 [] [main] [] WARN 
2024-03-02T23:00:51.912823598Z       org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext - Exception thrown from ApplicationListener handling ContextClosedEvent
2024-03-02T23:00:51.912830415Z java.lang.NullPointerException: Cannot invoke "io.camunda.zeebe.broker.Broker.close()" because "this.broker" is null
2024-03-02T23:00:51.912834911Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:94) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.912839158Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:34) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.912843126Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912847136Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912850886Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912855137Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912859684Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912863462Z 	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1127) [spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912867230Z 	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.doClose(ReactiveWebServerApplicationContext.java:149) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.912871236Z 	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1090) [spring-context-6.1.3.jar:6.1.3]
2024-03-02T23:00:51.912891529Z 	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:816) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.912898524Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:344) [spring-boot-3.2.2.jar:3.2.2]
2024-03-02T23:00:51.912902643Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-02T23:00:51.922204371Z 2024-03-02 23:00:51.921 [] [main] [] INFO 
2024-03-02T23:00:51.922259326Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete
2024-03-02T23:00:51.937348309Z 2024-03-02 23:00:51.934 [] [netty-shutdown] [] INFO 
2024-03-02T23:00:51.937404856Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Graceful shutdown complete

Exporter implementation


@SpringBootApplication
@EnableZeebeClient
public class MongoExporter implements Exporter {
    public static void main(String[] args) {
        SpringApplication.run(MongoExporter.class, args);
        System.out.println("Mongodb exporter is running ...");
    }

    // by default, the bulk request may not be bigger than 100MB
    private static final int RECOMMENDED_MAX_BULK_MEMORY_LIMIT = 100 * 1024 * 1024;

    private Logger log;
    private Controller controller;

    private MongoExporterConfiguration configuration;
    private ZeebeMongoClient client;

    private long lastPosition = -1;
    private boolean colsCreated;


    @Override
    public void configure(Context context) {
        log = context.getLogger();
        configuration =
                context.getConfiguration().instantiate(MongoExporterConfiguration.class);
        log.debug("Exporter configured with {}", configuration);
        validate(configuration);
        context.setFilter(new MongoRecordFilter(configuration));
    }

The dependencies, I used

 <zeebe-client-java.version>8.4.0</zeebe-client-java.version>
        <spring-boot-starter-camunda.version>8.4.0</spring-boot-starter-camunda.version>
        <zeebe-exporter-api.version>8.2.3</zeebe-exporter-api.version>

I think mounting the jar is not an issue. I even did mount it exactly the same way as you suggested and I still get the same error.

@ethio-link - can you share your Docker configuration?

@nathan.loding,

services:

  zeebe: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#zeebe
    image: camunda/zeebe:${CAMUNDA_PLATFORM_VERSION}
    container_name: zeebe
    ports:
      - "26500:26500"
      - "9600:9600"
    environment: # https://docs.camunda.io/docs/self-managed/zeebe-deployment/configuration/environment-variables/
      - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_MODE=${ZEEBE_AUTHENTICATION_MODE}
      - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_ISSUERBACKENDURL=http://keycloak:8080/auth/realms/camunda-platform
      - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_AUDIENCE=zeebe-api
      - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_BASEURL=http://identity:8084
      - ZEEBE_BROKER_GATEWAY_MULTITENANCY_ENABLED=${MULTI_TENANCY_ENABLED}
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_CLASSNAME=io.camunda.zeebe.exporter.ElasticsearchExporter
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_URL=http://elasticsearch:9200
      # default is 1000, see here: https://github.com/camunda/zeebe/blob/a29a6cc2b18602ad654f3269cd3b36176a8b3ebb/exporters/elasticsearch-exporter/src/main/java/io/camunda/zeebe/exporter/ElasticsearchExporterConfiguration.java#L259
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_BULK_SIZE=1
      # allow running with low disk space
      - ZEEBE_BROKER_DATA_DISKUSAGECOMMANDWATERMARK=0.998
      - ZEEBE_BROKER_DATA_DISKUSAGEREPLICATIONWATERMARK=0.999
      - "JAVA_TOOL_OPTIONS=-Xms512m -Xmx512m"
      - ZEEBE_LOG_LEVEL=debug

    restart: always
    healthcheck:
      test: [ "CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1" ]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s

    volumes:
      - zeebe:/usr/local/zeebe/data
      - ./config/application.yaml:/usr/local/zeebe/config/application.yaml
      - ./exporters/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar:/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar
    networks:
      - camunda-platform
    depends_on:
      - elasticsearch
      - identity
      - mongodb
     mongodb:
    image: mongo
    container_name: mongodb
    ports:
      - 27017:27017
    volumes:
      - mongodb_data:/data/db
#    healthcheck:
#      test: ["CMD","mongo", "--eval", "db.adminCommand('ping')"]
#      interval: 5s
#      timeout: 5s
#      retries: 3

    networks:
      - camunda-platform
    depends_on:
      - elasticsearch
      - identity

Exactily the same configuration C8 self-manage [GitHub - camunda/camunda-platform: Links to Camunda Platform 8 resources, releases, and local development config] I used

Hi @ethio-link - it looks like you are still using a relative path for the volume mount. I think we need to confirm that this isn’t the issue first. Per the link I shared earlier, Docker likely needs you to provide an absolute path.

In other words, instead of:
- ./exporters/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar:/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar
you need to have something like:
- /path/to/exporters/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar:/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar

Alternately, to show that the JAR is being properly mounted inside the container, you can use docker exec to list the contents of the /usr/local/zeebe/lib directory: docker exec container-name ls /usr/local/zeebe/lib.

Hey @nathan.loding,

Thank you so much for your response !!!
I think mounting the jar is not an issue. I even did mount it exactly the same way as it is mounted. I still get the same error.



image

@ethio-link - well you’ve thoroughly proven that isn’t the issue! Thanks for triple checking! My next thought is that it’s due to a version mismatch. The zeebe-exporter-api package is 8.2.4 in your project dependencies, but you’re running 8.4.x of the Zeebe client (and, presumably, of Camunda). If you update to 8.4.x, does that resolve the error?

@nathan.loding , Thank for your support ,

I have done with the latest verstion 8.4.0 for zeebe-exporter-api, but I have another error and I don’t know how to fix ?

import com.swisscom.zeebemongoexporter.MongoExporterConfiguration.ColConfiguration;
import io.camunda.zeebe.exporter.api.Exporter;
import io.camunda.zeebe.exporter.api.ExporterException;
import io.camunda.zeebe.exporter.api.context.Context;
import io.camunda.zeebe.exporter.api.context.Controller;
import io.camunda.zeebe.protocol.record.Record;
import io.camunda.zeebe.protocol.record.RecordType;
import io.camunda.zeebe.protocol.record.ValueType;
import io.camunda.zeebe.spring.client.EnableZeebeClient;
import org.slf4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.time.Duration;

@SpringBootApplication
@EnableZeebeClient
public class MongoExporter implements Exporter {

cannot access io.camunda.zeebe.exporter.api
.Exporter,
.ExporterException,
.context.Context
.context.Controller;

@ethio-link - I am not a Java developer, so I am not sure. Perhaps a Java version mismatch? Do you get any helpful messages if you try to compile with Maven (mvn compile -X I think)?

Hey @nathan.loding ,

It seems like you’re encountering a version compatibility issue in my Java project. The error message indicates that there’s a mismatch between the Java compiler version I am using(JDK Version 17 & class file version 61.0) and the version of the class file I am trying to access.
The class file Exporter.class in the zeebe-exporter-api-8.4.0.jar has been compiled with JDK version 21 (class file version 65.0).

I think Zeebe-exporter-api 8.4.0 have that have a comptiblity problme with Java JDK 17and even if I with JDK 21 class file (Exporter.class ) still the same error

68.64.8
2024-03-07T12:01:33.319365032Z + [ false = true ]
2024-03-07T12:01:33.319370091Z + [ false = true ]
2024-03-07T12:01:33.319372950Z + export ZEEBE_BROKER_NETWORK_HOST=192.168.64.8
2024-03-07T12:01:33.319375492Z + export ZEEBE_BROKER_GATEWAY_CLUSTER_HOST=192.168.64.8
2024-03-07T12:01:33.319377808Z + exec /usr/local/zeebe/bin/broker
2024-03-07T12:01:33.327644860Z Picked up JAVA_TOOL_OPTIONS: -Xms512m -Xmx512m
2024-03-07T12:01:37.958610852Z   ______  ______   ______   ____    ______     ____    _____     ____    _  __  ______   _____  
2024-03-07T12:01:37.958655481Z  |___  / |  ____| |  ____| |  _ \  |  ____|   |  _ \  |  __ \   / __ \  | |/ / |  ____| |  __ \ 
2024-03-07T12:01:37.958659280Z     / /  | |__    | |__    | |_) | | |__      | |_) | | |__) | | |  | | | ' /  | |__    | |__) |
2024-03-07T12:01:37.958661726Z    / /   |  __|   |  __|   |  _ <  |  __|     |  _ <  |  _  /  | |  | | |  <   |  __|   |  _  / 
2024-03-07T12:01:37.958664348Z   / /__  | |____  | |____  | |_) | | |____    | |_) | | | \ \  | |__| | | . \  | |____  | | \ \ 
2024-03-07T12:01:37.958667046Z  /_____| |______| |______| |____/  |______|   |____/  |_|  \_\  \____/  |_|\_\ |______| |_|  \_\
2024-03-07T12:01:37.958669758Z                                                                                                 
2024-03-07T12:01:38.223921506Z 2024-03-07 12:01:38.209 [] [main] [] INFO 
2024-03-07T12:01:38.223955142Z       io.camunda.zeebe.broker.StandaloneBroker - Starting StandaloneBroker v8.4.2 using Java 21.0.2 with PID 7 (/usr/local/zeebe/lib/camunda-zeebe-8.4.2.jar started by camunda in /usr/local/zeebe)
2024-03-07T12:01:38.224964421Z 2024-03-07 12:01:38.224 [] [main] [] DEBUG
2024-03-07T12:01:38.225001942Z       io.camunda.zeebe.broker.StandaloneBroker - Running with Spring Boot v3.2.2, Spring v6.1.3
2024-03-07T12:01:38.227358747Z 2024-03-07 12:01:38.226 [] [main] [] INFO 
2024-03-07T12:01:38.227386832Z       io.camunda.zeebe.broker.StandaloneBroker - The following 1 profile is active: "broker"
2024-03-07T12:01:42.975729179Z 2024-03-07 12:01:42.975 [] [main] [] WARN 
2024-03-07T12:01:42.975773715Z       io.camunda.zeebe.broker.system - Configuration parameter data.diskUsageCommandWatermark is deprecated. Use data.disk.freeSpace.processing instead.
2024-03-07T12:01:42.976912629Z 2024-03-07 12:01:42.975 [] [main] [] WARN 
2024-03-07T12:01:42.976966497Z       io.camunda.zeebe.broker.system - Configuration parameter data.diskUsageReplicationWatermark is deprecated. Use data.disk.freeSpace.replication instead.
2024-03-07T12:01:45.690865515Z 2024-03-07 12:01:45.690 [] [main] [] INFO 
2024-03-07T12:01:45.690920361Z       org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver - Exposing 13 endpoint(s) beneath base path '/actuator'
2024-03-07T12:01:49.033478430Z 2024-03-07 12:01:49.032 [] [main] [] INFO 
2024-03-07T12:01:49.033509459Z       org.springframework.boot.web.embedded.netty.NettyWebServer - Netty started on port 9600
2024-03-07T12:01:49.092860671Z 2024-03-07 12:01:49.092 [] [main] [] INFO 
2024-03-07T12:01:49.093038862Z       io.camunda.zeebe.broker.StandaloneBroker - Started StandaloneBroker in 12.172 seconds (process running for 15.764)
2024-03-07T12:01:49.118165399Z 2024-03-07 12:01:49.117 [] [main] [] WARN 
2024-03-07T12:01:49.118196282Z       io.camunda.zeebe.broker.system - No backup store is configured. Backups will not be taken
2024-03-07T12:01:49.353797116Z 2024-03-07 12:01:49.353 [] [main] [] DEBUG
2024-03-07T12:01:49.353828558Z       io.camunda.zeebe.broker.exporter - Exporter configured with ElasticsearchExporterConfiguration{url='http://elasticsearch:9200', requestTimeoutMs=30000, index=IndexConfiguration{prefix='zeebe-record', createTemplate=true, command=false, event=true, rejection=false, decision=true, decisionEvaluation=true, decisionRequirements=true, deployment=true, error=true, incident=true, job=true, jobBatch=false, message=true, messageBatch=false, messageSubscription=true, process=true, processInstance=true, processInstanceBatch=false, processInstanceCreation=true, processInstanceMigration=true, processInstanceModification=true, processMessageSubscription=true, variable=true, variableDocument=true, checkpoint=false, timer=true, messageStartEventSubscription=true, processEvent=false, deploymentDistribution=true, escalation=true, signal=true, signalSubscription=true, resourceDeletion=true, commandDistribution=true, form=true, userTask=true, compensationSubscription=true}, bulk=BulkConfiguration{delay=5, size=1, memoryLimit=10485760}, retention=RetentionConfiguration{isEnabled=false, minimumAge=30d, policyName='zeebe-record-retention-policy'}, authentication=AuthenticationConfiguration{Confidential information}}
2024-03-07T12:01:49.371011061Z 2024-03-07 12:01:49.368 [] [main] [] INFO 
2024-03-07T12:01:49.371058485Z       org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger - 
2024-03-07T12:01:49.371062301Z 
2024-03-07T12:01:49.371064781Z Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-03-07T12:01:49.474345918Z 2024-03-07 12:01:49.445 [] [main] [] ERROR
2024-03-07T12:01:49.474396822Z       org.springframework.boot.SpringApplication - Application run failed
2024-03-07T12:01:49.474403177Z java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar', className='com.demo.zeebemongoexporter.MongoExporter', args={url=http://localhost:27017/, dbName=zeebe, bulk={delay=5, size=1000}, col={prefix=zeebe-record, createCollections=true, command=false, event=true, rejection=false, deployment=false, error=false, incident=false, job=false, jobBatch=false, message=false, messageSubscription=false, variable=false, variableDocument=false, workflowInstance=true, workflowInstanceCreation=false, workflowInstanceSubscription=false, timers=false}}}
2024-03-07T12:01:49.474407658Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:150) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474411090Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:71) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474413944Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:49) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474434148Z 	at io.camunda.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:87) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474437041Z 	at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474439625Z 	at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474442118Z 	at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474444536Z 	at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474446847Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474449264Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474451511Z 	at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474455490Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474458219Z 	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474696125Z 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474719284Z 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474723337Z 	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474725863Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474728482Z 	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474730741Z 	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474732985Z 	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474735247Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:341) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474737637Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474740198Z Caused by: io.camunda.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [MongoExporter]: cannot load specified class
2024-03-07T12:01:49.474742578Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:83) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474744928Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474747297Z 	... 21 more
2024-03-07T12:01:49.474762885Z Caused by: java.lang.ClassNotFoundException: com.demo.zeebemongoexporter.MongoExporter
2024-03-07T12:01:49.474765680Z 	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474768086Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474775505Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474777891Z 	at io.camunda.zeebe.util.jar.ExternalJarClassLoader.loadClass(ExternalJarClassLoader.java:57) ~[zeebe-util-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474780332Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:80) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474784479Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474787270Z 	... 21 more
2024-03-07T12:01:49.499086545Z 2024-03-07 12:01:49.496 [] [main] [] WARN 
2024-03-07T12:01:49.499127831Z       org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext - Exception thrown from ApplicationListener handling ContextClosedEvent
2024-03-07T12:01:49.499133820Z java.lang.NullPointerException: Cannot invoke "io.camunda.zeebe.broker.Broker.close()" because "this.broker" is null
2024-03-07T12:01:49.499137034Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:94) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.499141193Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:34) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.499143942Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499146467Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499148836Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499151309Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499153587Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499155933Z 	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1127) [spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499158263Z 	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.doClose(ReactiveWebServerApplicationContext.java:149) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499161478Z 	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1090) [spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499179831Z 	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:816) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499184904Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:344) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499187993Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.507206121Z 2024-03-07 12:01:49.503 [] [main] [] INFO 
2024-03-07T12:01:49.507252095Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete
2024-03-07T12:01:49.529855998Z 2024-03-07 12:01:49.528 [] [netty-shutdown] [] INFO 
2024-03-07T12:01:49.529898454Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Graceful shutdown complete
2024-03-07T12:01:49.669640548Z 2024-03-07 12:01:49.666 [] [main] [] DEBUG
2024-03-07T12:01:49.669679853Z       io.camunda.zeebe.gateway - Closing gateway broker client ...
2024-03-07T12:01:49.678153401Z 2024-03-07 12:01:49.677 [] [main] [] DEBUG
2024-03-07T12:01:49.678193768Z       io.camunda.zeebe.gateway - request manager closed
2024-03-07T12:01:49.681082448Z 2024-03-07 12:01:49.679 [] [main] [] DEBUG
2024-03-07T12:01:49.681116464Z       io.camunda.zeebe.gateway - transport client closed
2024-03-07T12:01:49.682299029Z 2024-03-07 12:01:49.681 [] [main] [] DEBUG
2024-03-07T12:01:49.682333553Z       io.camunda.zeebe.gateway - Gateway broker client closed.
2024-03-07T12:01:49.706348938Z 2024-03-07 12:01:49.690 [] [atomix-cluster-0] [] INFO 
2024-03-07T12:01:49.706387562Z       io.atomix.cluster.AtomixCluster - Stopped
2024-03-07T12:01:49.707816660Z 2024-03-07 12:01:49.707 [] [main] [] DEBUG
2024-03-07T12:01:49.708548685Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-fs-workers'
2024-03-07T12:01:49.710664573Z 2024-03-07 12:01:49.709 [] [main] [] DEBUG
2024-03-07T12:01:49.710694626Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-actors'
2024-03-07T12:01:49.724766148Z 2024-03-07 12:01:49.721 [Broker-0] [zb-fs-workers-0] [] DEBUG
2024-03-07T12:01:49.724811223Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-fs-workers': closed successfully
2024-03-07T12:01:49.726354969Z 2024-03-07 12:01:49.725 [Broker-0] [zb-actors-0] [] DEBUG
2024-03-07T12:01:49.726387933Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-actors': closed successfully

Still the same error @nathan.loding

I DON’T KNOW HOW TO FIX !

Hi @ethio-link - Zeebe uses version 21+, so yes, that sounds correct.

Hey @nathan.loding ,

Even if , after I used Java 21, I have the same error

68.64.8
2024-03-07T12:01:33.319365032Z + [ false = true ]
2024-03-07T12:01:33.319370091Z + [ false = true ]
2024-03-07T12:01:33.319372950Z + export ZEEBE_BROKER_NETWORK_HOST=192.168.64.8
2024-03-07T12:01:33.319375492Z + export ZEEBE_BROKER_GATEWAY_CLUSTER_HOST=192.168.64.8
2024-03-07T12:01:33.319377808Z + exec /usr/local/zeebe/bin/broker
2024-03-07T12:01:33.327644860Z Picked up JAVA_TOOL_OPTIONS: -Xms512m -Xmx512m
2024-03-07T12:01:37.958610852Z   ______  ______   ______   ____    ______     ____    _____     ____    _  __  ______   _____  
2024-03-07T12:01:37.958655481Z  |___  / |  ____| |  ____| |  _ \  |  ____|   |  _ \  |  __ \   / __ \  | |/ / |  ____| |  __ \ 
2024-03-07T12:01:37.958659280Z     / /  | |__    | |__    | |_) | | |__      | |_) | | |__) | | |  | | | ' /  | |__    | |__) |
2024-03-07T12:01:37.958661726Z    / /   |  __|   |  __|   |  _ <  |  __|     |  _ <  |  _  /  | |  | | |  <   |  __|   |  _  / 
2024-03-07T12:01:37.958664348Z   / /__  | |____  | |____  | |_) | | |____    | |_) | | | \ \  | |__| | | . \  | |____  | | \ \ 
2024-03-07T12:01:37.958667046Z  /_____| |______| |______| |____/  |______|   |____/  |_|  \_\  \____/  |_|\_\ |______| |_|  \_\
2024-03-07T12:01:37.958669758Z                                                                                                 
2024-03-07T12:01:38.223921506Z 2024-03-07 12:01:38.209 [] [main] [] INFO 
2024-03-07T12:01:38.223955142Z       io.camunda.zeebe.broker.StandaloneBroker - Starting StandaloneBroker v8.4.2 using Java 21.0.2 with PID 7 (/usr/local/zeebe/lib/camunda-zeebe-8.4.2.jar started by camunda in /usr/local/zeebe)
2024-03-07T12:01:38.224964421Z 2024-03-07 12:01:38.224 [] [main] [] DEBUG
2024-03-07T12:01:38.225001942Z       io.camunda.zeebe.broker.StandaloneBroker - Running with Spring Boot v3.2.2, Spring v6.1.3
2024-03-07T12:01:38.227358747Z 2024-03-07 12:01:38.226 [] [main] [] INFO 
2024-03-07T12:01:38.227386832Z       io.camunda.zeebe.broker.StandaloneBroker - The following 1 profile is active: "broker"
2024-03-07T12:01:42.975729179Z 2024-03-07 12:01:42.975 [] [main] [] WARN 
2024-03-07T12:01:42.975773715Z       io.camunda.zeebe.broker.system - Configuration parameter data.diskUsageCommandWatermark is deprecated. Use data.disk.freeSpace.processing instead.
2024-03-07T12:01:42.976912629Z 2024-03-07 12:01:42.975 [] [main] [] WARN 
2024-03-07T12:01:42.976966497Z       io.camunda.zeebe.broker.system - Configuration parameter data.diskUsageReplicationWatermark is deprecated. Use data.disk.freeSpace.replication instead.
2024-03-07T12:01:45.690865515Z 2024-03-07 12:01:45.690 [] [main] [] INFO 
2024-03-07T12:01:45.690920361Z       org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver - Exposing 13 endpoint(s) beneath base path '/actuator'
2024-03-07T12:01:49.033478430Z 2024-03-07 12:01:49.032 [] [main] [] INFO 
2024-03-07T12:01:49.033509459Z       org.springframework.boot.web.embedded.netty.NettyWebServer - Netty started on port 9600
2024-03-07T12:01:49.092860671Z 2024-03-07 12:01:49.092 [] [main] [] INFO 
2024-03-07T12:01:49.093038862Z       io.camunda.zeebe.broker.StandaloneBroker - Started StandaloneBroker in 12.172 seconds (process running for 15.764)
2024-03-07T12:01:49.118165399Z 2024-03-07 12:01:49.117 [] [main] [] WARN 
2024-03-07T12:01:49.118196282Z       io.camunda.zeebe.broker.system - No backup store is configured. Backups will not be taken
2024-03-07T12:01:49.353797116Z 2024-03-07 12:01:49.353 [] [main] [] DEBUG
2024-03-07T12:01:49.353828558Z       io.camunda.zeebe.broker.exporter - Exporter configured with ElasticsearchExporterConfiguration{url='http://elasticsearch:9200', requestTimeoutMs=30000, index=IndexConfiguration{prefix='zeebe-record', createTemplate=true, command=false, event=true, rejection=false, decision=true, decisionEvaluation=true, decisionRequirements=true, deployment=true, error=true, incident=true, job=true, jobBatch=false, message=true, messageBatch=false, messageSubscription=true, process=true, processInstance=true, processInstanceBatch=false, processInstanceCreation=true, processInstanceMigration=true, processInstanceModification=true, processMessageSubscription=true, variable=true, variableDocument=true, checkpoint=false, timer=true, messageStartEventSubscription=true, processEvent=false, deploymentDistribution=true, escalation=true, signal=true, signalSubscription=true, resourceDeletion=true, commandDistribution=true, form=true, userTask=true, compensationSubscription=true}, bulk=BulkConfiguration{delay=5, size=1, memoryLimit=10485760}, retention=RetentionConfiguration{isEnabled=false, minimumAge=30d, policyName='zeebe-record-retention-policy'}, authentication=AuthenticationConfiguration{Confidential information}}
2024-03-07T12:01:49.371011061Z 2024-03-07 12:01:49.368 [] [main] [] INFO 
2024-03-07T12:01:49.371058485Z       org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger - 
2024-03-07T12:01:49.371062301Z 
2024-03-07T12:01:49.371064781Z Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-03-07T12:01:49.474345918Z 2024-03-07 12:01:49.445 [] [main] [] ERROR
2024-03-07T12:01:49.474396822Z       org.springframework.boot.SpringApplication - Application run failed
2024-03-07T12:01:49.474403177Z java.lang.IllegalStateException: Failed to load exporter with configuration: ExporterCfg{, jarPath='/usr/local/zeebe/lib/zeebe-mongo-exporter-0.0.1-SNAPSHOT.jar', className='com.demo.zeebemongoexporter.MongoExporter', args={url=http://localhost:27017/, dbName=zeebe, bulk={delay=5, size=1000}, col={prefix=zeebe-record, createCollections=true, command=false, event=true, rejection=false, deployment=false, error=false, incident=false, job=false, jobBatch=false, message=false, messageSubscription=false, variable=false, variableDocument=false, workflowInstance=true, workflowInstanceCreation=false, workflowInstanceSubscription=false, timers=false}}}
2024-03-07T12:01:49.474407658Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:150) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474411090Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:71) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474413944Z 	at io.camunda.zeebe.broker.Broker.<init>(Broker.java:49) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474434148Z 	at io.camunda.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:87) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474437041Z 	at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474439625Z 	at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474442118Z 	at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474444536Z 	at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88) ~[spring-core-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.474446847Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474449264Z 	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789) ~[spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474451511Z 	at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474455490Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474458219Z 	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474696125Z 	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474719284Z 	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474723337Z 	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474725863Z 	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474728482Z 	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474730741Z 	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474732985Z 	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474735247Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:341) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.474737637Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474740198Z Caused by: io.camunda.zeebe.broker.exporter.repo.ExporterLoadException: Cannot load exporter [MongoExporter]: cannot load specified class
2024-03-07T12:01:49.474742578Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:83) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474744928Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474747297Z 	... 21 more
2024-03-07T12:01:49.474762885Z Caused by: java.lang.ClassNotFoundException: com.demo.zeebemongoexporter.MongoExporter
2024-03-07T12:01:49.474765680Z 	at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474768086Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474775505Z 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
2024-03-07T12:01:49.474777891Z 	at io.camunda.zeebe.util.jar.ExternalJarClassLoader.loadClass(ExternalJarClassLoader.java:57) ~[zeebe-util-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474780332Z 	at io.camunda.zeebe.broker.exporter.repo.ExporterRepository.load(ExporterRepository.java:80) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474784479Z 	at io.camunda.zeebe.broker.Broker.buildExporterRepository(Broker.java:148) ~[zeebe-broker-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.474787270Z 	... 21 more
2024-03-07T12:01:49.499086545Z 2024-03-07 12:01:49.496 [] [main] [] WARN 
2024-03-07T12:01:49.499127831Z       org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext - Exception thrown from ApplicationListener handling ContextClosedEvent
2024-03-07T12:01:49.499133820Z java.lang.NullPointerException: Cannot invoke "io.camunda.zeebe.broker.Broker.close()" because "this.broker" is null
2024-03-07T12:01:49.499137034Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:94) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.499141193Z 	at io.camunda.zeebe.broker.StandaloneBroker.onApplicationEvent(StandaloneBroker.java:34) ~[camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.499143942Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499146467Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499148836Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499151309Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499153587Z 	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499155933Z 	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1127) [spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499158263Z 	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.doClose(ReactiveWebServerApplicationContext.java:149) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499161478Z 	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1090) [spring-context-6.1.3.jar:6.1.3]
2024-03-07T12:01:49.499179831Z 	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:816) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499184904Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:344) [spring-boot-3.2.2.jar:3.2.2]
2024-03-07T12:01:49.499187993Z 	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:78) [camunda-zeebe-8.4.2.jar:8.4.2]
2024-03-07T12:01:49.507206121Z 2024-03-07 12:01:49.503 [] [main] [] INFO 
2024-03-07T12:01:49.507252095Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Commencing graceful shutdown. Waiting for active requests to complete
2024-03-07T12:01:49.529855998Z 2024-03-07 12:01:49.528 [] [netty-shutdown] [] INFO 
2024-03-07T12:01:49.529898454Z       org.springframework.boot.web.embedded.netty.GracefulShutdown - Graceful shutdown complete
2024-03-07T12:01:49.669640548Z 2024-03-07 12:01:49.666 [] [main] [] DEBUG
2024-03-07T12:01:49.669679853Z       io.camunda.zeebe.gateway - Closing gateway broker client ...
2024-03-07T12:01:49.678153401Z 2024-03-07 12:01:49.677 [] [main] [] DEBUG
2024-03-07T12:01:49.678193768Z       io.camunda.zeebe.gateway - request manager closed
2024-03-07T12:01:49.681082448Z 2024-03-07 12:01:49.679 [] [main] [] DEBUG
2024-03-07T12:01:49.681116464Z       io.camunda.zeebe.gateway - transport client closed
2024-03-07T12:01:49.682299029Z 2024-03-07 12:01:49.681 [] [main] [] DEBUG
2024-03-07T12:01:49.682333553Z       io.camunda.zeebe.gateway - Gateway broker client closed.
2024-03-07T12:01:49.706348938Z 2024-03-07 12:01:49.690 [] [atomix-cluster-0] [] INFO 
2024-03-07T12:01:49.706387562Z       io.atomix.cluster.AtomixCluster - Stopped
2024-03-07T12:01:49.707816660Z 2024-03-07 12:01:49.707 [] [main] [] DEBUG
2024-03-07T12:01:49.708548685Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-fs-workers'
2024-03-07T12:01:49.710664573Z 2024-03-07 12:01:49.709 [] [main] [] DEBUG
2024-03-07T12:01:49.710694626Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-actors'
2024-03-07T12:01:49.724766148Z 2024-03-07 12:01:49.721 [Broker-0] [zb-fs-workers-0] [] DEBUG
2024-03-07T12:01:49.724811223Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-fs-workers': closed successfully
2024-03-07T12:01:49.726354969Z 2024-03-07 12:01:49.725 [Broker-0] [zb-actors-0] [] DEBUG
2024-03-07T12:01:49.726387933Z       io.camunda.zeebe.util.actor - Closing actor thread ground 'zb-actors': closed successfully

Could you check if the zeebe-exporter-api-8.4.2 is working correctly? I suspect there may be issues with the Exporter.class in this library.

@ethio-link - can you share the full source code and/or the JAR? I chatted with one of our engineers and they don’t believe it’s related to zeebe-exporter-api.

I also noticed in this log it’s trying to load com.demo.zeebemongoexporter.MongoExporter but in previous logs it’s trying to load com.swisscom.zeebemongoexporter.MongoExporter - it would be good to check to make sure the correct fully qualified classpath for your exporter is in the application configuration.

Hey @nathan.loding

I wanted to express my appreciation for your support.
Here is the sample exporter class for my git repositories along with the complete implementation [ GitHub - Aklilu-Tsige/mongo-exporter ].

I’d love to get your feedback and suggestions. Your input has been invaluable in shaping this project.
Thanks again!

Hey @nathan.loding

Do you have any news for me, please? I’m still feeling blocked. Could you please help me? I couldn’t fix my bug yet.

Hi @ethio-link - I just finished looking at your repository with one of our engineers. We believe the issue is that you are using Spring, which creates an executable JAR package rather than library that can be imported. If you look at the original Mongo exporter example you based yours off, as well as Camunda’s officially supported exporters, you’ll find they don’t use Spring.

There isn’t as much documentation about developing custom exporters as I’d like - and our developer experience team is working to improve those docs - but this information about interceptors is relevant to packaging exporters also. I would recommend reviewing that package (specifically the part about packaging the JAR), and see if that helps resolve the issues with the exporter.

Definitely let me know the results! This thread is good feedback for our teams as they continually improve our documentation!

(Also, one quick note: these are community forums, not an official support channel. If you are in need of faster support with SLAs, I can get you in touch with someone to discuss support needs!)

Hi @nathan.loding,

Thank you for your assistance. I will try implementing your suggestions and provide you with feedback.