I'm getting below error

Application properties
camunda.connector.polling.enabled=false
camunda.operate.client.enabled=false
camunda.client.operate.enabled=false
camunda.connector.webhook.enabled=false
operate.client.enabled=false

zeebe.client.broker.gateway-address=127.0.0.1:26500
zeebe.client.security.plaintext=false

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
3.3.4


io.camunda.demo
camunda_helloworld
0.0.1-SNAPSHOT
Process payments
Process payments with Camunda














<java.version>21</java.version>
<version.zeebe.spring>8.5.0</version.zeebe.spring>
<camunda.connector-version>8.5.0</camunda.connector-version>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
   
    <!-- https://mvnrepository.com/artifact/io.camunda.connector/spring-boot-starter-camunda-connectors -->
    <dependency>
        <groupId>io.camunda.connector</groupId>
        <artifactId>spring-boot-starter-camunda-connectors</artifactId>
        <version>8.5.2</version>
    </dependency>
    <dependency>
        <groupId>io.camunda</groupId>
        <artifactId>zeebe-client-java</artifactId>
        <version>8.5.0</version>
    </dependency>


 

    <!-- https://mvnrepository.com/artifact/io.camunda.connector/element-template-generator-core -->
    <dependency>
        <groupId>io.camunda.connector</groupId>
        <artifactId>element-template-generator-core</artifactId>
        <version>${camunda.connector-version}</version>
    </dependency>




    <!-- https://mvnrepository.com/artifact/com.google.http-client/google-http-client -->
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.45.0</version>
        <exclusions>
            <exclusion>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.opencensus</groupId>
                <artifactId>opencensus-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-context</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.google.api-client/google-api-client -->
    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>2.7.0</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
    <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>3.1.0</version>
    </dependency>


</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

I want to connect to self managed zebee broker running - register my OutboundConnector.

package io.camunda.connector;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.api.client.http.HttpRequestFactory;
import io.camunda.connector.api.annotation.OutboundConnector;
import io.camunda.connector.api.json.ConnectorsObjectMapperSupplier;
import io.camunda.connector.api.outbound.OutboundConnectorContext;
import io.camunda.connector.api.outbound.OutboundConnectorFunction;
import io.camunda.connector.generator.java.annotation.ElementTemplate;
import io.camunda.connector.generator.java.annotation.ElementTemplate.PropertyGroup;
import io.camunda.connector.http.base.components.HttpTransportComponentSupplier;
import io.camunda.connector.http.base.services.HttpService;
import io.camunda.connector.http.rest.model.HttpJsonRequest;
import java.io.IOException;
import org.springframework.stereotype.Component;

@Component
@OutboundConnector(
name = “HTTP REST”,
inputVariables = {
“url”,
“method”,
“authentication”,
“headers”,
“queryParameters”,
“connectionTimeoutInSeconds”,
“readTimeoutInSeconds”,
“writeTimeoutInSeconds”,
“body”
},
type = HttpJsonFunction.TYPE)
@ElementTemplate(
id = “io.camunda.connectors.HttpJson.v2”,
name = “REST Outbound Connector”,
description = “Invoke REST API”,
inputDataClass = HttpJsonRequest.class,
version = 8,
propertyGroups = {
@PropertyGroup(id = “authentication”, label = “Authentication”),
@PropertyGroup(id = “endpoint”, label = “HTTP endpoint”),
@PropertyGroup(id = “timeout”, label = “Connection timeout”),
@PropertyGroup(id = “payload”, label = “Payload”)
},
documentationRef = “REST Connector | Camunda 8 Docs”,
icon = “icon.svg”)

public class HttpJsonFunction implements OutboundConnectorFunction {

public static final String TYPE = “io.camunda:http-json:1”;

private final HttpService httpService;

public HttpJsonFunction() {
this(
ConnectorsObjectMapperSupplier.getCopy(),
HttpTransportComponentSupplier.httpRequestFactoryInstance());
}

public HttpJsonFunction(
final ObjectMapper objectMapper, final HttpRequestFactory requestFactory) {
this.httpService = new HttpService(objectMapper, requestFactory);
}

@Override
public Object execute(final OutboundConnectorContext context)
throws IOException, InstantiationException, IllegalAccessException {
final var request = context.bindVariables(HttpJsonRequest.class);
return httpService.executeConnectorRequest(request);
}
}

BPMN

<?xml version="1.0" encoding="UTF-8"?>

<bpmn:definitions xmlns:bpmn=“http://www.omg.org/spec/BPMN/20100524/MODEL” xmlns:bpmndi=“http://www.omg.org/spec/BPMN/20100524/DI” xmlns:dc=“http://www.omg.org/spec/DD/20100524/DC” xmlns:zeebe=“http://camunda.org/schema/zeebe/1.0” xmlns:di=“http://www.omg.org/spec/DD/20100524/DI” xmlns:modeler=“http://camunda.org/schema/modeler/1.0” id=“Definitions_03bsxv6” targetNamespace=“http://bpmn.io/schema/bpmn” exporter=“Camunda Modeler” exporterVersion=“5.28.0” modeler:executionPlatform=“Camunda Cloud” modeler:executionPlatformVersion=“8.6.0”>
<bpmn:process id=“Process_0cy6nj0” isExecutable=“true”>
<bpmn:startEvent id=“StartEvent_1” name=“Start”>
bpmn:outgoingFlow_1mc2qmc</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id=“Flow_1mc2qmc” sourceRef=“StartEvent_1” targetRef=“custom-rest-outbound-connector” />
<bpmn:serviceTask id=“custom-rest-outbound-connector” name=“custom-rest-outbound-connector” zeebe:modelerTemplate=“io.camunda.connectors.HttpJson.v2” zeebe:modelerTemplateVersion=“8” zeebe:modelerTemplateIcon=“data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE3LjAzMzUgOC45OTk5N0MxNy4wMzM1IDEzLjQ0NzUgMTMuNDI4MSAxNy4wNTI5IDguOTgwNjUgMTcuMDUyOUM0LjUzMzE2IDE3LjA1MjkgMC45Mjc3NjUgMTMuNDQ3NSAwLjkyNzc2NSA4Ljk5OTk3QzAuOTI3NzY1IDQuNTUyNDggNC41MzMxNiAwLjk0NzA4MyA4Ljk4MDY1IDAuOTQ3MDgzQzEzLjQyODEgMC45NDcwODMgMTcuMDMzNSA0LjU1MjQ4IDE3LjAzMzUgOC45OTk5N1oiIGZpbGw9IiM1MDU1NjIiLz4KPHBhdGggZD0iTTQuOTMxMjYgMTQuMTU3MUw2Ljc4MTA2IDMuNzE0NzFIMTAuMTM3NUMxMS4xOTE3IDMuNzE0NzEgMTEuOTgyNCAzLjk4MzIzIDEyLjUwOTUgNC41MjAyN0MxMy4wNDY1IDUuMDQ3MzYgMTMuMzE1IDUuNzMzNTggMTMuMzE1IDYuNTc4OTJDMTMuMzE1IDcuNDQ0MTQgMTMuMDcxNCA4LjE1NTIyIDEyLjU4NDEgOC43MTIxNUMxMi4xMDY3IDkuMjU5MTMgMTEuNDU1MyA5LjYzNzA1IDEwLjYyOTggOS44NDU5TDEyLjA2MTkgMTQuMTU3MUgxMC4zMzE1TDkuMDMzNjQgMTAuMDI0OUg3LjI0MzUxTDYuNTEyNTQgMTQuMTU3MUg0LjkzMTI2Wk03LjQ5NzExIDguNTkyODFIOS4yNDI0OEM5Ljk5ODMyIDguNTkyODEgMTAuNTkwMSA4LjQyMzc0IDExLjAxNzcgOC4wODU2MUMxMS40NTUzIDcuNzM3NTMgMTEuNjc0MSA3LjI2NTEzIDExLjY3NDEgNi42Njg0MkMxMS42NzQxIDYuMTkxMDYgMTEuNTI0OSA1LjgxODExIDExLjIyNjUgNS41NDk1OUMxMC45MjgyIDUuMjcxMTMgMTAuNDU1OCA1LjEzMTkgOS44MDkzNiA1LjEzMTlIOC4xMDg3NEw3LjQ5NzExIDguNTkyODFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K”>
bpmn:extensionElements
<zeebe:taskDefinition type=“io.camunda:http-json:1” retries=“3” />
zeebe:ioMapping
<zeebe:input source=“noAuth” target=“authentication.type” />
<zeebe:input source=“GET” target=“method” />
<zeebe:input source=“http://localhost:8090/hello” target=“url” />
<zeebe:input source=“20” target=“connectionTimeoutInSeconds” />
<zeebe:input source=“20” target=“readTimeoutInSeconds” />
</zeebe:ioMapping>
zeebe:taskHeaders
<zeebe:header key=“resultVariable” value=“response” />
<zeebe:header key=“retryBackoff” value=“PT0S” />
</zeebe:taskHeaders>
</bpmn:extensionElements>
bpmn:incomingFlow_1mc2qmc</bpmn:incoming>
bpmn:outgoingFlow_1e3rwhw</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id=“Event_0s41gep” name=“stop”>
bpmn:incomingFlow_1e3rwhw</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id=“Flow_1e3rwhw” sourceRef=“custom-rest-outbound-connector” targetRef=“Event_0s41gep” />
</bpmn:process>
<bpmndi:BPMNDiagram id=“BPMNDiagram_1”>
<bpmndi:BPMNPlane id=“BPMNPlane_1” bpmnElement=“Process_0cy6nj0”>
<bpmndi:BPMNShape id=“_BPMNShape_StartEvent_2” bpmnElement=“StartEvent_1”>
<dc:Bounds x=“179” y=“99” width=“36” height=“36” />
bpmndi:BPMNLabel
<dc:Bounds x=“185” y=“142” width=“25” height=“14” />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id=“Activity_1v244s4_di” bpmnElement=“custom-rest-outbound-connector”>
<dc:Bounds x=“270” y=“77” width=“100” height=“80” />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id=“Event_0s41gep_di” bpmnElement=“Event_0s41gep”>
<dc:Bounds x=“432” y=“99” width=“36” height=“36” />
bpmndi:BPMNLabel
<dc:Bounds x=“439” y=“142” width=“22” height=“14” />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id=“Flow_1mc2qmc_di” bpmnElement=“Flow_1mc2qmc”>
<di:waypoint x=“215” y=“117” />
<di:waypoint x=“270” y=“117” />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id=“Flow_1e3rwhw_di” bpmnElement=“Flow_1e3rwhw”>
<di:waypoint x=“370” y=“117” />
<di:waypoint x=“432” y=“117” />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>

But keep getting error as below:

Description:

Parameter 0 of method springOperateClientAdapter in io.camunda.connector.runtime.inbound.operate.OperateClientConfiguration required a bean of type ‘io.camunda.operate.CamundaOperateClient’ that could not be found.

Action:
Consider defining a bean of type ‘io.camunda.operate.CamundaOperateClient’ in your configuration.

Hey @Raja_Shan ,

First of all welcome to our community happy to see you here :slight_smile:

Now, regarding your issue, could you tell me where you set the camunda.connector.polling.enabled=false property? In which file, and where did you put this file?

I’m asking because this property should be enough and prevent any OperateClientConfiguration from being fetched.

Could you post your project’s main class (spring boot application)?

Thanks,
Jonathan

Thank you @jroques for helping me.

camunda.connector.polling.enabled=false

This has been added in application.properties.

server.port=8090
camunda.connector.polling.enabled=false
camunda.operate.client.enabled=false
camunda.client.operate.enabled=false
camunda.connector.webhook.enabled=false
operate.client.enabled=false
zeebe.client.broker.gateway-address=127.0.0.1:26500
zeebe.client.security.plaintext=false

Main class
@SpringBootApplication
public class HelloWorldApplication {

public static void main(String args) {
SpringApplication.run(HelloWorldApplication.class, args);
}

}

Entire project link

Thank you!
Is it possible to test with spring-boot-starter-camunda-connectors version 8.6.2?