[英]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.