rabbitmq客户端AMQP.BasicProperties如何设置标题?

问题描述 投票:0回答:1

[我的交付对象具有BasicProperties。但是在basicproprieties中,标头为null。我需要向标头添加一个值。为此,我使用了构建器模式,因为其中没有setter。

                Integer retryIndex = 1;

                if (delivery.getProperties().getHeaders() == null) {
                    delivery.getProperties().builder().headers(new HashMap<>()).build();
                }

                if (delivery.getProperties().getHeaders().containsKey(KEY_RETRY_COUNT)){
                    retryIndex = (Integer) delivery.getProperties().getHeaders().get(KEY_RETRY_COUNT);
                    retryIndex++;
                }

                delivery.getProperties().getHeaders().put(KEY_RETRY_COUNT, retryIndex);

当条件为if(delivery.getProperties()。getHeaders()。containsKey(KEY_RETRY_COUNT))获得nullPointErexception时,我第二次运行代码。有人可以帮上忙。

java spring-boot rabbitmq
1个回答
0
投票
    Delivery del = null;

                    if (delivery.getProperties().getHeaders() == null) {
                        Map<String, Object> header = new HashMap<>();
                        header.put(KEY_RETRY_COUNT, retryIndex);
                        delivery.getProperties().builder().headers(header).build();

                        del = new Delivery(delivery.getEnvelope(),
                                           new AMQP.BasicProperties().builder().headers(header).build(),
                                           delivery.getBody());
}

这里我创建一个新的Delivery对象,并使用构造函数来设置属性。

© www.soinside.com 2019 - 2024. All rights reserved.