简体   繁体   English

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

[英]rabbitmq client AMQP.BasicProperties How to set the Headers?

My Delivery object has BasicProperties.But inside the basicproprieties headers are null.I need to add a value to headers.I used builder pattern for this becourse of there don't have setter.我的 Delivery 对象具有 BasicProperties。但在 basicproprieties 标头内为空。我需要向标头添加一个值。我为此使用了构建器模式,因为没有设置器。

                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);

when i'm run the code second if condition if (delivery.getProperties().getHeaders().containsKey(KEY_RETRY_COUNT)) getting nullPointErexception.当我第二次运行代码时,如果 (delivery.getProperties().getHeaders().containsKey(KEY_RETRY_COUNT)) 得到 nullPointEreexception。 some one can help on this.有人可以帮助解决这个问题。

    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());
}

Here i create a new Delivery object and use the constructor to set the properties.在这里,我创建了一个新的 Delivery 对象并使用构造函数来设置属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM