【发布时间】:2014-09-26 06:33:13
【问题描述】:
在发送消息之前使用以下代码向 SQS 发布具有属性的消息(并在 SQS 控制台中检查是否所有内容都正确发布)...
messageRequest.addMessageAttributesEntry(
"attributeTest",
new MessageAttributeValue()
.withDataType("String")
.withStringValue("attributeTest 123"));
我无法检索消息中的任何消息属性。结果,我所看到的只是“0 个属性”。在 Amazon 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.");
}
我在 Java 1.7 中使用 Amazon SQS SDK v1.8 和 Play Framework 2.2.3。一开始以为是SQS版本,后来升级到1.8.7也没用。
找到here的官方文档根本没有提供任何读取属性的源代码。也不是 github 搜索,堆栈溢出。我已经尝试了几个小时没有任何成功。
感谢您的帮助!
【问题讨论】:
标签: java amazon-sqs