当前位置: 首页 > 知识库问答 >
问题:

Amazon AWS SQS Java-属性为空

夏飞掣
2023-03-14

我正在尝试从正在处理的每个消息中提取AWS SQS消息属性。我已经验证了属性在那里并且所有的东西都拼写正确:name:RequestId value:thisistherequestid

我收到的信息是这样的:

messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("All")).getMessages()

我还尝试过:

messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("RequestId")).getMessages()
        for (Message m : messages) {
            Map<String, MessageAttributeValue> attributeValues = new HashMap<String, MessageAttributeValue>();
            attributeValues = m.getMessageAttributes();
            System.out.println("Attribute Values ===>  " + attributeValues.get("RequestId").getStringValue());
        for (Message m : messages) {
            Map<String, String> attributeValues = new HashMap<String, String>();
            attributeValues = m.getAttributes();
            System.out.println("Attribute Values ===>  " + attributeValues.get("RequestId"));
            attributeValues = m.getMessageAttributes();
            System.out.println("Attribute Values ===>  " + attributeValues);

共有1个答案

公羊浩阔
2023-03-14

您设置的是SQS中的消息属性。因此,在检索时,您必须使用下面的代码。

messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withMessageAttributeNames("RequestId")).getMessages()

这将获取名为requestId的消息属性

 类似资料:
  • 我必须在其他类中使用的所有set和get方法,所以我不能删除一个方法。当我召唤 它提示异常,jackon不知道设置了哪个方法,所以我使用了@jsonignore,但我发现receive是null。

  • 我对@modeldattribute的用法有问题。 具有具有以下上下文的简单Spring(3.2.11)mvc应用程序: 有两个DTO:PageDTO和SessionTo,这两个DTO内部完全相同,只包含一个属性-地址和get/set方法。 有一个地址orm.jsp一个表格: 有控制器的: 问题来了。当我提交地址表单时,两个DTO都会用表单中的数据填充。我希望只填充jsp中表单标记中提到的带有“p

  • 简单验证器 向属性添加“验证”例程的快速方法是使用 validates() 装饰者。属性验证器可以引发异常,停止改变属性值的过程,或者将给定值更改为其他值。与所有属性扩展一样,验证程序只由普通的userland代码调用;当ORM填充对象时不会发出验证程序:: from sqlalchemy.orm import validates class EmailAddress(Base): __

  • 问题内容: 是HTML的属性吗? 我应该做还是 我读了很多文章,但仍然感到困惑。 有人可以向我解释一下HTML / JS中的属性与属性之间的区别是非常简单的吗? 问题答案: 属性由HTML定义。属性(在DOM元素上)由DOM(以及HTML 5定义,模糊了标记和DOM之间的边界)。 一些HTML属性具有1:1映射到属性。就是这样的一个例子。 有时名称是不同的。该属性映射到该属性,该属性映射到该属性(

  • 我不明白为什么我必须对类中的私有属性使用getter或setter。

  • 问题内容: 如何将类属性声明为对象? 我试过了: 但这没有用。另外,为什么要那样做呢? 只实例化该对象并使用其成员不是更好吗? 问题答案: 从有关类属性的PHP手册(重点是我的): 类成员变量称为“属性”。您可能还会看到使用其他术语(例如“属性”或“字段”)来引用它们,但是出于参考目的,我们将使用“属性”。它们是使用关键字public,protected或private之一定义的,后跟普通变量声明