Hi,
Trying to build a custom Inbound Connector for AWS MSK and wire it to the OOTB Inbound Connector for Kafka… getting the below exception… The connector worker is connected to Camunda SAAS.
Any suggestion would be helpful…
Dependency -
Spring boot - 3.1.1
spring-boot-starter-camunda-connectors - 0.21.3
spring-boot-starter-camunda - 8.2.3
grpc-core - 1.54.2
2023-07-20T13:18:17.023+05:30 WARN 29636 — [ault-executor-0] io.camunda.zeebe.client.job.poller : Failed to activate jobs for worker KAFKA and job type io.camunda:connector-kafka:1
io.grpc.StatusRuntimeException: UNAVAILABLE: Failed ALPN negotiation: Unable to find compatible protocol
Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0]
at io.grpc.Status.asRuntimeException(Status.java:539)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:487)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:576)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:757)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:736)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Hi @neelanjan_banerjee - GRPC requires HTTP/2 via ALPN. This errors looks like HTTP/2 and/or ALPN may not be supported by your server configuration. Also, if there is a proxy between your server and C8, the proxy needs to support HTTP/2 and ALPN also.
Hi @nathan.loding ,
Currently using a different machine and getting a different exception…
Any suugestions would be helpful…
In the connector worker project have added the below required dependencies
implementation ‘io.camunda.connector:connector-kafka:0.21.3’
implementation ‘io.camunda.connector:connector-core:0.11.4’
implementation ‘io.camunda.connector:connector-test:0.11.4’
implementation ‘io.camunda.connector:connector-validation:0.11.4’
implementation ‘io.camunda.connector:spring-boot-starter-camunda-connectors:0.21.3’
implementation ‘org.springframework.boot:spring-boot-starter-web’
2023-08-17T19:49:17.450+05:30 INFO 9508 — [ main] i.c.z.s.c.jobhandling.JobWorkerManager : . Starting Zeebe worker: ZeebeWorkerValue{type=‘io.camunda.connectors.outbound.MSK.v1’, name=‘MSK_OUTBOUND’, timeout=null, maxJobsActive=null, requestTimeout=null, pollInterval=null, autoComplete=true, fetchVariables=[authentication, topic, message, additionalProperties], enabled=null, methodInfo=null}
2023-08-17T19:49:17.452+05:30 INFO 9508 — [ main] i.c.z.s.c.jobhandling.JobWorkerManager : . Starting Zeebe worker: ZeebeWorkerValue{type=‘io.camunda:connector-kafka:1’, name=‘KAFKA’, timeout=null, maxJobsActive=null, requestTimeout=null, pollInterval=null, autoComplete=true, fetchVariables=[authentication, topic, message, additionalProperties], enabled=null, methodInfo=null}
2023-08-17T19:49:17.466+05:30 INFO 9508 — [ main] c.r.d.io.camunda.connector.Application : Started Application in 3.563 seconds (process running for 3.95)
2023-08-17T19:49:17.975+05:30 ERROR 9508 — [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
java.util.ServiceConfigurationError: io.camunda.connector.api.validation.ValidationProvider: io.camunda.connector.validation.impl.DefaultValidationProvider Unable to get public no-arg constructor
at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:679)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1240)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)
at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)
at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)
at java.base/java.util.ServiceLoader.findFirst(ServiceLoader.java:1811)
at io.camunda.connector.api.validation.ValidationUtil.discoverDefaultValidationProviderImplementation(ValidationUtil.java:24)
at io.camunda.connector.impl.context.AbstractConnectorContext.(AbstractConnectorContext.java:39)
at io.camunda.connector.runtime.core.inbound.InboundConnectorContextImpl.(InboundConnectorContextImpl.java:58)
at io.camunda.connector.runtime.inbound.lifecycle.InboundConnectorManager.activateConnector(InboundConnectorManager.java:141)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at io.camunda.connector.runtime.inbound.lifecycle.InboundConnectorManager.handleLatestBpmnVersion(InboundConnectorManager.java:134)
at io.camunda.connector.runtime.inbound.lifecycle.InboundConnectorManager.registerProcessDefinitions(InboundConnectorManager.java:111)
at io.camunda.connector.runtime.inbound.importer.ProcessDefinitionImporter.handleImportedDefinitions(ProcessDefinitionImporter.java:59)
at io.camunda.connector.runtime.inbound.importer.ProcessDefinitionSearch.query(ProcessDefinitionSearch.java:64)
at io.camunda.connector.runtime.inbound.importer.ProcessDefinitionImporter.scheduleImport(ProcessDefinitionImporter.java:49)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoClassDefFoundError: javax/validation/ValidationException
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373)
at java.base/java.lang.Class.getConstructor0(Class.java:3578)
at java.base/java.lang.Class.getConstructor(Class.java:2271)
at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:666)
at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:663)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:674)
… 27 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.validation.ValidationException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
hi @nathan.loding ,
I think I found the issue… Let me check… Thanks…
Hi @neelanjan_banerjee
Can you please explain how could you resolve your issue?