This is an automated email from the ASF dual-hosted git repository.
oscerd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git
The following commit(s) were added to refs/heads/main by this push:
new 63dadf10c2 Refs #1849: document the AWS SDK HTTP client conflict on
Confluent Platform images (#1851)
63dadf10c2 is described below
commit 63dadf10c2a6278ef8871b364796b5451c694c0f
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Oct 27 13:28:14 2026 +0100
Refs #1849: document the AWS SDK HTTP client conflict on Confluent Platform
images (#1851)
AWS connectors 4.22.0 fail on cp-kafka-connect images with
"ServiceConfigurationError: ... ApacheSdkHttpService not a subtype": the
image's own AWS SDK (kafka-serde-tools) registers the classic apache-client
on the worker classpath, which the plugin can see. Add a Known
Incompatibilities entry with the cause and three workarounds. The Camel
fix is CAMEL-26343.
Signed-off-by: Andrea Cosentino <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
---
.../pages/contributor-guide/troubleshooting.adoc | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/docs/modules/ROOT/pages/contributor-guide/troubleshooting.adoc
b/docs/modules/ROOT/pages/contributor-guide/troubleshooting.adoc
index b0aad33512..1b3db87851 100644
--- a/docs/modules/ROOT/pages/contributor-guide/troubleshooting.adoc
+++ b/docs/modules/ROOT/pages/contributor-guide/troubleshooting.adoc
@@ -64,6 +64,45 @@ versions of Camel that cause conflict when trying to run the
connector. You may
`java.lang.NoSuchMethodError:
org.apache.camel.main.Main.configure()Lorg/apache/camel/main/MainConfigurationProperties`
when trying to do so.
+[#aws-connectors-on-confluent-platform-images]
+=== AWS connectors on Confluent Platform images
+
+Since 4.22.0, an AWS connector (for example
`camel-aws-s3-source-kafka-connector`) running on a Confluent Platform
+`cp-kafka-connect` image can fail when its task starts, while it creates the
AWS SDK client:
+
+----
+java.util.ServiceConfigurationError:
software.amazon.awssdk.http.SdkHttpService:
software.amazon.awssdk.http.apache.ApacheSdkHttpService not a subtype
+----
+
+The image puts its own copy of the AWS SDK on the worker classpath
(`/usr/share/java/kafka-serde-tools`), with the
+`apache-client` HTTP client. Kafka Connect lets the connector see the HTTP
clients registered on the worker classpath,
+and the AWS SDK fails when one of them belongs to another copy of the SDK. Up
to 4.18.x the connectors shipped
+`apache-client` themselves, which hid the problem. Since Camel 4.22.0 they
ship `apache5-client` instead.
+
+Any of the following avoids the error:
+
+* Add `apache-client`, at the AWS SDK version of the connector, and its
dependencies to the connector directory. The
+connector keeps using the Apache 5 client. For the 4.22.0 connectors, which
use AWS SDK 2.50.2:
++
+[source,bash]
+----
+cd <plugin.path>/camel-aws-s3-source-kafka-connector
+for a in software/amazon/awssdk/apache-client/2.50.2/apache-client-2.50.2.jar \
+ org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar \
+ org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar \
+ commons-logging/commons-logging/1.2/commons-logging-1.2.jar; do
+ curl -sSfLO "https://repo1.maven.org/maven2/$a"
+done
+----
+* Name the HTTP client with the AWS SDK system property, for example
+`KAFKA_OPTS=-Dsoftware.amazon.awssdk.http.service.impl=software.amazon.awssdk.http.apache5.Apache5SdkHttpService`.
+The property applies to the whole worker JVM, including other plugins that use
the AWS SDK.
+* Remove `apache-client-*.jar` from `/usr/share/java/kafka-serde-tools` in the
image. Do this only if nothing else on
+the worker uses that copy of the AWS SDK, such as Schema Registry client-side
field level encryption with AWS KMS.
+
+https://issues.apache.org/jira/browse/CAMEL-26343[CAMEL-26343] makes the Camel
AWS components set their HTTP client
+themselves: connectors built on a Camel release that contains it do not need
these workarounds.
+
[#known-limitations]
== Known Limitations