I have been working building a Spring Boot application running at AWS. Today I was working on setting it up to receive SQS messages. Like many things in Spring Boot, it is remarkably simple. Just create a method with the @SQSListener annotation like this:
@SqsListener(“queue-name”)
public void queueListener(String message, @Header(“SenderId”) String senderId) {
// Do stuff…
}
In all the documentation I read, the “queue-name” was a short name, like the Name of the Queue. However, when I used my Queue’s name I got the following error:
Ignoring queue with name ‘AGEventQueue’: The queue does not exist.; nested exception is com.amazonaws.services.sqs.model.QueueDoesNotExistException: The specified queue does not exist for this wsdl version. (Service: AmazonSQS; Status Code: 400; Error Code: AWS.SimpleQueueService.NonExistentQueue; Request ID:XXXXXX
The fix is to use the Queue’s URL instead of the name. None of the documentation I was reading pointed that out, so I’m writing it here!
Leave a Reply