Подключение к серверу ElasticMQ sqs с использованием SQSClient в компоненте aws-sqs camel
Я пытаюсь использовать Amazon SQS для проведения интеграционного теста. У меня есть промежуточное приложение, которое прослушивает внешнюю очередь SQS и обрабатывает сообщение. Для проведения интеграционного теста я не могу использовать внешнюю очередь SQS. Поэтому я пытаюсь создать очередь SQS, используя сервер Elastic MQ. Сервер запущен.
[main] INFO org.elasticmq.rest.sqs.TheSQSRestServerBuilder - запущенный сервер SQS rest, адрес привязки 127.0.0.1:9300, видимый адрес сервера http://localhost:9324/
Я могу отправлять и получать сообщения с помощью клиента sqs, созданного в классе тестирования интеграции. Но исходное приложение не может подключиться к SQS.
Создал сервер используя следующий код:
SQSRestServerBuilder.withPort(9324).withInterface("127.0.0.1").start();
String endpoint = "http://127.0.0.1:9300";
String region = "us-east-1";
String accessKey = "x";
String secretKey = "x";
AmazonSQS client = AmazonSQSClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey)))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, region))
.build();
client.createQueue("queueName");`
Возможность отправить сообщение, используя
sqsClient.sendMessage (" http://localhost:9300/queue/queueName", json); ReceiveMessageResult recieveMessage = sqsClient.receiveMessage (" http://localhost:9300/queue/queueName"); Listlist = recieveMessage.getMessages ();
Но верблюжий маршрут выдает ошибку "Отказ в соединении".
from ("aws-sqs: // queueName? amazonSQSClient = # amazonSQSClient").routeId (Constants.SQS_CONSUMER_ROUTE_ID).log ("MESSAGE: SQS_MESSAGE_RECEIVED")
amazonSQSClient configuration is
String endpoint = "http://127.0.0.1:9324";
String region = "us-east-1";
String accessKey = "x";
String secretKey = "x";
Я предполагаю, что приложение сможет подключиться к серверу ElasticMQ, используя конфигурацию, и сможет подписывать сообщения из очереди SQS.