簡體   English   中英

如何在 spring 集成消息中設置 JMS Header

[英]How to set JMS Header in spring integration message

我試圖在 spring 集成消息中設置 jms 相關 ID,方法是在推入 IBM MQ 之前在其 header 中設置,但在從隊列中讀取消息后該值不可用。

使用以下代碼設置 header

MessageBuilder.withPayload("Hi")
.setHeader(JmsConstans.JMS_CORRELATIONID,"ID12334556889").build();

我們不知道JmsConstans.JMS_CORRELATIONID是什么:它在我的依賴項中不可用。 所以,聽起來更像是你自己的,因此,我們必須知道它的價值。

DefaultJmsHeaderMapper中的邏輯(默認情況下由JmsSendingMessageHandler使用)是這樣的:

private void populateCorrelationIdPropertyFromHeaders(MessageHeaders headers, javax.jms.Message jmsMessage) {
    Object jmsCorrelationId = headers.get(JmsHeaders.CORRELATION_ID);
    if (jmsCorrelationId instanceof Number) {
        jmsCorrelationId = jmsCorrelationId.toString();
    }
    if (jmsCorrelationId instanceof String) {
        try {
            jmsMessage.setJMSCorrelationID((String) jmsCorrelationId);
        }
        catch (Exception ex) {
            LOGGER.info("Failed to set JMSCorrelationID, skipping", ex);
        }
    }
}

其中JmsHeaders.CORRELATION_ID具有以下值: jms_correlationId

然而,所有這一切都只是一種推測,因為我們不知道您如何將該消息推送到 IBM MQ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM