Search code examples
amazon-web-servicesamazon-sqsaws-java-sdk

Receiving message from SQS: received message is different from sent message


I am working with a SQS queue where I send an element using Python boto. When I try to receive it from Java, I get something else, not the same body.

This is my Java:

CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName("random_queue");
String queueUrl = sqsClient.createQueue(createQueueRequest).getQueueUrl();
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl).withWaitTimeSeconds(20);
            List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).getMessages();
            System.out.println(messages.toString());
            for (Message message : messages) {
                String element = message.getBody();

                System.out.println(" [x] Received '" + element + "'");
}

output: [x] Received 'ZGY1YzNiODYtNTM4Ny00NzVmLThkMGEtMDc4MzkxM2M2YWY5'

Python code:

my_queue = conn.create_queue('random_queue', 900)
m = my_queue.read()
body= m.get_body()

print body

output : df5c3b86-5387-475f-8d0a-0783913c6af9 (This is the actual message I sent in the queue)

Why is my Java returning a different message to Python?


Solution

  • Java code is returning in base 64 . Decode it to get original message.