ruchirvaninasdaq opened a new issue #1285:
URL: https://github.com/apache/camel-kafka-connector/issues/1285


   Hello, 
   I have added a custom class extending CamelAws2S3SourceConnector for some 
custom work. Now trying to build the project and deploy it. It's giving me the 
following error 
   
   I am using 0.7.x branch 
`https://github.com/apache/camel-kafka-connector/tree/camel-kafka-connector-0.7.x`
 on Strimzi 0.25.0 cluster.
   
   
   ```
   2021-11-09 16:00:21,642 INFO Creating connector my-connector of type 
org.apache.camel.kafkaconnector.aws2s3.CamelAws2s3SourceConnector 
(org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-1]
   2021-11-09 16:00:21,643 ERROR Failed to start connector my-connector 
(org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-1]
   org.apache.kafka.connect.errors.ConnectException: Failed to find any class 
that implements Connector and which name matches 
org.apache.camel.kafkaconnector.aws2s3.CamelAws2s3SourceConnector, available 
connectors are: PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.common.CamelSinkConnector, 
name='com.nasdaq.ncds.kafkaconnector.common.CamelSinkConnector', 
version='null', encodedVersion=null, type=sink, typeName='sink', 
location='file:/opt/kafka/plugins/my-connector/'}, PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.common.CamelSourceConnector, 
name='com.nasdaq.ncds.kafkaconnector.common.CamelSourceConnector', 
version='null', encodedVersion=null, type=source, typeName='source', 
location='file:/opt/kafka/plugins/my-connector/'}, PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector, 
name='com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector', 
version='null', encodedVersion=null, type=source, typeName='source', 
location='file:/opt/kaf
 ka/plugins/my-connector/'}, PluginDesc{klass=class 
org.apache.kafka.connect.file.FileStreamSinkConnector, 
name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='2.8.0', 
encodedVersion=2.8.0, type=sink, typeName='sink', location='classpath'}, 
PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, 
name='org.apache.kafka.connect.file.FileStreamSourceConnector', 
version='2.8.0', encodedVersion=2.8.0, type=source, typeName='source', 
location='classpath'}, PluginDesc{klass=class 
org.apache.kafka.connect.mirror.MirrorCheckpointConnector, 
name='org.apache.kafka.connect.mirror.MirrorCheckpointConnector', version='1', 
encodedVersion=1, type=source, typeName='source', location='classpath'}, 
PluginDesc{klass=class 
org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, 
name='org.apache.kafka.connect.mirror.MirrorHeartbeatConnector', version='1', 
encodedVersion=1, type=source, typeName='source', location='classpath'}, 
PluginDesc{klass=class org.apache.k
 afka.connect.mirror.MirrorSourceConnector, 
name='org.apache.kafka.connect.mirror.MirrorSourceConnector', version='1', 
encodedVersion=1, type=source, typeName='source', location='classpath'}, 
PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, 
name='org.apache.kafka.connect.tools.MockConnector', version='2.8.0', 
encodedVersion=2.8.0, type=connector, typeName='connector', 
location='classpath'}, PluginDesc{klass=class 
org.apache.kafka.connect.tools.MockSinkConnector, 
name='org.apache.kafka.connect.tools.MockSinkConnector', version='2.8.0', 
encodedVersion=2.8.0, type=sink, typeName='sink', location='classpath'}, 
PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, 
name='org.apache.kafka.connect.tools.MockSourceConnector', version='2.8.0', 
encodedVersion=2.8.0, type=source, typeName='source', location='classpath'}, 
PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, 
name='org.apache.kafka.connect.tools.SchemaSourceConnector'
 , version='2.8.0', encodedVersion=2.8.0, type=source, typeName='source', 
location='classpath'}, PluginDesc{klass=class 
org.apache.kafka.connect.tools.VerifiableSinkConnector, 
name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='2.8.0', 
encodedVersion=2.8.0, type=source, typeName='source', location='classpath'}, 
PluginDesc{klass=class 
org.apache.kafka.connect.tools.VerifiableSourceConnector, 
name='org.apache.kafka.connect.tools.VerifiableSourceConnector', 
version='2.8.0', encodedVersion=2.8.0, type=source, typeName='source', 
location='classpath'}
        at 
org.apache.kafka.connect.runtime.isolation.Plugins.connectorClass(Plugins.java:208)
        at 
org.apache.kafka.connect.runtime.isolation.Plugins.newConnector(Plugins.java:180)
        at 
org.apache.kafka.connect.runtime.Worker.startConnector(Worker.java:275)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.startConnector(DistributedHerder.java:1348)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$getConnectorStartingCallable$22(DistributedHerder.java:1354)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
   2021-11-09 16:00:21,645 ERROR Failed to start task my-connector-0 
(org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-2]
   org.apache.kafka.common.config.ConfigException: Invalid value 
org.apache.camel.kafkaconnector.aws2s3.converters.S3ObjectConverter for 
configuration value.converter: Class 
org.apache.camel.kafkaconnector.aws2s3.converters.S3ObjectConverter could not 
be found.
        at 
org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:744)
        at 
org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:490)
        at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:483)
        at 
org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:108)
        at 
org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:129)
        at 
org.apache.kafka.connect.runtime.ConnectorConfig.<init>(ConnectorConfig.java:230)
        at 
org.apache.kafka.connect.runtime.ConnectorConfig.<init>(ConnectorConfig.java:226)
        at org.apache.kafka.connect.runtime.Worker.startTask(Worker.java:520)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.startTask(DistributedHerder.java:1287)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$getTaskStartingCallable$17(DistributedHerder.java:1300)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
   
   ```
   
   
   I have verified that my configs are applied. 
   
   kubectl get kafkaconnector my-connector -o yaml
   
   ```
   apiVersion: kafka.strimzi.io/v1beta2
   kind: KafkaConnector
   metadata:
     annotations:
       kubectl.kubernetes.io/last-applied-configuration: |
         
{"apiVersion":"kafka.strimzi.io/v1beta2","kind":"KafkaConnector","metadata":{"annotations":{},"labels":{"strimzi.io/cluster":"my-kafka-connect-cluster"},"name":"my-connector","namespace":"myns"},"spec":{"class":"com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector","config":{"camel.component.aws2-s3.autocloseBody":false,"camel.component.aws2-s3.includeBody":true,"camel.component.aws2-s3.useDefaultCredentialsProvider":true,"camel.source.endpoint.destinationBucket":"bucket","camel.source.endpoint.moveAfterRead":true,"camel.source.endpoint.useDefaultCredentialsProvider":true,"camel.source.kafka.topic":"data","camel.source.maxBatchPollSize":1000,"camel.source.maxPollDuration":10,"camel.source.path.bucketNameOrArn":"bucketuinput","client.id":"client","connector.class":"com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector","key.converter":"org.apache.kafka.connect.storage.StringConverter","topics":"data","value.converter":"com.nasdaq.ncds.kafkaconnector.s3.converte
 rs.S3ObjectConverter"},"tasksMax":1}}
     creationTimestamp: "2021-11-09T15:55:43Z"
     generation: 1
     labels:
       strimzi.io/cluster: my-kafka-connect-cluster
     name: my-connector
     namespace: ns
     resourceVersion: "225638895"
     selfLink: 
/apis/kafka.strimzi.io/v1beta2/namespaces/ns/kafkaconnectors/my-connector
     uid: c408cd1c-7985-473f-9f48-7f8addf2fd22
   spec:
     class: com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector
     config:
       camel.component.aws2-s3.autocloseBody: false
       camel.component.aws2-s3.includeBody: true
       camel.component.aws2-s3.useDefaultCredentialsProvider: true
       camel.source.endpoint.destinationBucket: bucket
       camel.source.endpoint.moveAfterRead: true
       camel.source.endpoint.useDefaultCredentialsProvider: true
       camel.source.kafka.topic: data
       camel.source.maxBatchPollSize: 1000
       camel.source.maxPollDuration: 10
       camel.source.path.bucketNameOrArn: bucket
       client.id:client
       connector.class: 
com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector
       key.converter: org.apache.kafka.connect.storage.StringConverter
       topics: data
       value.converter: 
com.nasdaq.ncds.kafkaconnector.s3.converters.S3ObjectConverter
     tasksMax: 1
   status:
     conditions:
     - lastTransitionTime: "2021-11-09T15:55:59.577283Z"
       message: 'GET /connectors/my-connector/config returned 500 (Internal 
Server
         Error): Failed to find any class that implements Connector and which 
name matches
         org.apache.camel.kafkaconnector.aws2s3.CamelAws2s3SourceConnector, 
available
         connectors are: PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.common.CamelSinkConnector,
         name=''com.nasdaq.ncds.kafkaconnector.common.CamelSinkConnector'', 
version=''null'',
         encodedVersion=null, type=sink, typeName=''sink'', 
location=''file:/opt/kafka/plugins/my-connector/''},
         PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.common.CamelSourceConnector,
         name=''com.nasdaq.ncds.kafkaconnector.common.CamelSourceConnector'', 
version=''null'',
         encodedVersion=null, type=source, typeName=''source'', 
location=''file:/opt/kafka/plugins/my-connector/''},
         PluginDesc{klass=class 
com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector,
         name=''com.nasdaq.ncds.kafkaconnector.s3.CamelAws2s3SourceConnector'', 
version=''null'',
         encodedVersion=null, type=source, typeName=''source'', 
location=''file:/opt/kafka/plugins/my-connector/''},
         PluginDesc{klass=class 
org.apache.kafka.connect.file.FileStreamSinkConnector,
         name=''org.apache.kafka.connect.file.FileStreamSinkConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=sink, typeName=''sink'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.file.FileStreamSourceConnector,
         name=''org.apache.kafka.connect.file.FileStreamSourceConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.mirror.MirrorCheckpointConnector,
         name=''org.apache.kafka.connect.mirror.MirrorCheckpointConnector'', 
version=''1'',
         encodedVersion=1, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.mirror.MirrorHeartbeatConnector,
         name=''org.apache.kafka.connect.mirror.MirrorHeartbeatConnector'', 
version=''1'',
         encodedVersion=1, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.mirror.MirrorSourceConnector,
         name=''org.apache.kafka.connect.mirror.MirrorSourceConnector'', 
version=''1'',
         encodedVersion=1, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, 
name=''org.apache.kafka.connect.tools.MockConnector'',
         version=''2.8.0'', encodedVersion=2.8.0, type=connector, 
typeName=''connector'',
         location=''classpath''}, PluginDesc{klass=class 
org.apache.kafka.connect.tools.MockSinkConnector,
         name=''org.apache.kafka.connect.tools.MockSinkConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=sink, typeName=''sink'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.tools.MockSourceConnector, 
name=''org.apache.kafka.connect.tools.MockSourceConnector'',
         version=''2.8.0'', encodedVersion=2.8.0, type=source, 
typeName=''source'', location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.tools.SchemaSourceConnector,
         name=''org.apache.kafka.connect.tools.SchemaSourceConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.tools.VerifiableSinkConnector,
         name=''org.apache.kafka.connect.tools.VerifiableSinkConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=source, typeName=''source'', 
location=''classpath''},
         PluginDesc{klass=class 
org.apache.kafka.connect.tools.VerifiableSourceConnector,
         name=''org.apache.kafka.connect.tools.VerifiableSourceConnector'', 
version=''2.8.0'',
         encodedVersion=2.8.0, type=source, typeName=''source'', 
location=''classpath''}'
       reason: ConnectRestException
       status: "True"
       type: NotReady
     observedGeneration: 1
     tasksMax: 1
     topics: []
   ```
   
   Please let me know if you need any more information. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to