Jan S created CAMEL-14979:
-----------------------------
Summary: aws2-sqs: Polling fails because of "host must not be null"
Key: CAMEL-14979
URL: https://issues.apache.org/jira/browse/CAMEL-14979
Project: Camel
Issue Type: Bug
Components: camel-aws2
Affects Versions: 3.2.0, 3.1.0
Reporter: Jan S
Attachments: aws2-sqs-example.zip
First of all: I attached a demo-project to the issue to reproduce the problem.
What am I doing:
Polling messages from AWS-SQS FIFO queues in a spring-boot 2 environment with
java 11, using camel-aws2-sqs-starter.
I started with version 3.0.1 and the aws-sqs component, the configuration was
fine, up and running.
Since I switched to camel 3.1.0/3.2.0 and aws2-sqs component I receive the
following error:
{code:java}
Caused by: [software.amazon.awssdk.core.exception.SdkClientException - Unable
to marshall request to JSON: host must not be
null.]software.amazon.awssdk.core.exception.SdkClientException: Unable to
marshall request to JSON: host must not be null.
at
software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98)
~[sdk-core-2.11.5.jar:na]
at
software.amazon.awssdk.services.sqs.transform.ReceiveMessageRequestMarshaller.marshall(ReceiveMessageRequestMarshaller.java:52)
~[sqs-2.11.5.jar:na]
at
software.amazon.awssdk.services.sqs.transform.ReceiveMessageRequestMarshaller.marshall(ReceiveMessageRequestMarshaller.java:31)
~[sqs-2.11.5.jar:na]
at
software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:68)
~[sdk-core-2.11.5.jar:na]
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:131)
~[sdk-core-2.11.5.jar:na]
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:101)
~[sdk-core-2.11.5.jar:na]
at
software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
~[sdk-core-2.11.5.jar:na]
at
software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
~[aws-core-2.11.5.jar:na]
at
software.amazon.awssdk.services.sqs.DefaultSqsClient.receiveMessage(DefaultSqsClient.java:1046)
~[sqs-2.11.5.jar:na]
at
org.apache.camel.component.aws2.sqs.Sqs2Consumer.poll(Sqs2Consumer.java:99)
~[camel-aws2-sqs-3.2.0.jar:3.2.0]
at
org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
~[camel-support-3.2.0.jar:3.2.0]
at
org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106)
~[camel-support-3.2.0.jar:3.2.0]
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
~[na:na]
at
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
~[na:na]
at
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
~[na:na]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
~[na:na]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
Caused by: java.lang.NullPointerException: host must not be null.
at
software.amazon.awssdk.utils.Validate.paramNotNull(Validate.java:117)
~[utils-2.11.5.jar:na]
at
software.amazon.awssdk.http.DefaultSdkHttpFullRequest.<init>(DefaultSdkHttpFullRequest.java:53)
~[http-client-spi-2.11.5.jar:na]
at
software.amazon.awssdk.http.DefaultSdkHttpFullRequest.<init>(DefaultSdkHttpFullRequest.java:41)
~[http-client-spi-2.11.5.jar:na]
at
software.amazon.awssdk.http.DefaultSdkHttpFullRequest$Builder.build(DefaultSdkHttpFullRequest.java:331)
~[http-client-spi-2.11.5.jar:na]
at
software.amazon.awssdk.http.DefaultSdkHttpFullRequest$Builder.build(DefaultSdkHttpFullRequest.java:170)
~[http-client-spi-2.11.5.jar:na]
at
software.amazon.awssdk.protocols.query.internal.marshall.QueryProtocolMarshaller.marshall(QueryProtocolMarshaller.java:68)
~[aws-query-protocol-2.11.5.jar:na]
at
software.amazon.awssdk.protocols.query.internal.marshall.QueryProtocolMarshaller.marshall(QueryProtocolMarshaller.java:31)
~[aws-query-protocol-2.11.5.jar:na]
at
software.amazon.awssdk.services.sqs.transform.ReceiveMessageRequestMarshaller.marshall(ReceiveMessageRequestMarshaller.java:50)
~[sqs-2.11.5.jar:na]
... 16 common frames omitted
{code}
I tried to find solutions using
[https://camel.apache.org/camel-spring-boot/latest/aws2-sqs-starter.html] and
had a short chat with [~acosentino].
For the demo project to run you'll need to fill in
"camel.component.aws2-sqs.access-key", "camel.component.aws2-sqs.secret-key"
and a ARN "com.example.arn" of your FIFO-queue. All keys are found in the
application.properties file.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)