После отправки сообщения с атрибутом SQS со следующим кодом перед его отправкой (и проверкой в консоли SQS, чтобы увидеть, все ли опубликовано правильно)...
messageRequest.addMessageAttributesEntry(
"attributeTest",
new MessageAttributeValue()
.withDataType("String")
.withStringValue("attributeTest 123"));
Я не могу получить какие-либо атрибуты сообщения в сообщении. Все, что я вижу, в результате - "0 атрибутов". Повторное ознакомление с сообщением в консоли Амазонки SQS, сообщение - и атрибут - все еще есть.
// Message was previously checked in SQS console and contains
// an attribute named "attributeTest"
AmazonSQS sqs = ...
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message : messages)
{
Map<String, MessageAttributeValue> attributes = message.getMessageAttributes();
System.out.println("" + attributes.size() + " attributes.");
}
Я использую Amazon SQS SDK v1.8 в Java 1.7 с Play Framework 2.2.3. Сначала я подумал, что это может быть версия SQS, но попытался перейти на 1.8.7 без возможности.
В официальной документации, найденной здесь, не содержится никакого исходного кода для чтения атрибутов вообще. Не выполняется поиск в github, переполнение стека. Я пробовал несколько часов без каких-либо успехов.
Спасибо за любую помощь!