Creating a custom connector in Camunda 8.6

Hello,
I would like to create a custom connector to use in my project that runs on Spring Boot (Java 21). I’m connecting to SaaS version of Camunda 8.6. I’ve created a template in the SaaS GUI and written the necessary code in Java. However, even after following Camunda tutorials meticulously, I’ve run across issues with Camunda libraries. When I use version 8.6.x in the libraries, I get error A (below). When I downgrade version 8.5.x, or even 8.3.x, I get error B. Downgrading to Java 19 or 17 doesn’t help and neither does doing the suggested workaround in the stacktrace. Can someone please show me a working custom connector project? Please note, that I need to get fully functional messaging in Camunda as well. During some downgrade (can’t remember the versions unfortunately), I’ve managed to get the app partially working (the connector was being registred, though not activated), but I couldn’t send variables by messages somehow.

You can find the project here (if you don’t like the idea of downloading an unknown zip file, I can create some public repository):

Error A:

***************************

APPLICATION FAILED TO START

***************************

Description:

The bean 'zeebeLifecycleEventProducer', defined in class path resource [io/camunda/zeebe/spring/client/configuration/CamundaAutoConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [io/camunda/zeebe/spring/client/CamundaAutoConfiguration.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

Error B:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 1 of method operateClientProdAutoConfiguration in io.camunda.connector.runtime.InboundConnectorsAutoConfiguration required a bean of type 'io.camunda.zeebe.spring.client.properties.CamundaClientProperties' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=false)


Action:

Consider defining a bean of type 'io.camunda.zeebe.spring.client.properties.CamundaClientProperties' in your configuration.

I’m looking forward to your suggestions and I hope to get custom connectors running in Spring Boot soon.

Best regards,
Adam Schuppler

Hi @schupada, thanks for your request and happy to have you as a Connector SDK user. Did you start using the template project: GitHub - camunda/connector-template-outbound: Template repository to create Camunda Platform 8 Connectors using Connector SDK ?

Hello,
thank you for a fast reply. I’ve taken a look at the template project when trying to get started with custom connectors, but I’ve always modified my main project, since the template project doesn’t use ZeebeClient to start a process from the SpringBoot app (that contains the custom connector as well). It seems that libraries for ZeebeClient are somehow conflicting with libraries for custom connectors. Could you please provide me (and potentially others who are looking to use custom connectors in their SpringBoot apps that use ZeebeClient) with pom.xml that contains versions of the respective libraries such that they don’t collide with each other? I’ve tried multiple permutations and none worked (such that sending data via messages was still working on top of the custom connectors functionality). Or perhaps there is a bug in the library itself.

Best regards,
Adam

1 Like