【发布时间】:2014-11-10 12:44:10
【问题描述】:
我无法正确添加属性。我正在使用 AWS 1.7 当我添加它们时,它们会显示在消息正文中,而不是属性中。当我登录 AWS 控制台时,我可以看到这一点。
我用这段代码添加消息属性:
Message awsMessage = new Message();
Map<String, MessageAttributeValue> messageAttributes =
new HashMap<String, MessageAttributeValue>();
messageAttributes.put("email", new MessageAttributeValue()
.withDataType("String")
.withStringValue(email));
messageAttributes.put("data", new MessageAttributeValue()
.withDataType("String")
.withStringValue(newFileName));
messageAttributes.put("template", new MessageAttributeValue()
.withDataType("String")
.withStringValue(filename));
awsMessage.setMessageAttributes(messageAttributes);
我尝试使用它来提取属性:
List<Message> messages = SQSUtilityClass.getMessagesFromQueue(QUEUE_URL);
int size = messages.size();
Map<String, String> attributes = new HashMap<String, String>();
System.out.println("Size: "+size);
for(int x =0;x<size;x++){
Message message = messages.get(x);
//System.out.println(message.getBody());
attributes = message.getAttributes();
for(String key: attributes.keySet()){
System.out.println(key + " - "+ attributes.get(key));
}
}
当我通过 AWS 控制台查看时,我的属性仍然在消息正文中。
【问题讨论】:
标签: java amazon-web-services message-queue amazon-sqs