Я использую заголовок, который использует существующие заголовки, чтобы установить значение нового заголовка.Однако существующая информация заголовка теряется, и остается только 3 заголовка, т.е. идентификатор запроса, отметка времени и необработанное тело.
public String vipul(Message<String> message) {
MessageHeaders messageHeaders =message.getHeaders();
if (messageHeaders.containsKey("x-death")) {
List<HashMap<String, Object>> deathList = (List<HashMap<String, Object>>) messageHeaders
.get("x-death");
//logger.debug(message.get("messageId")+" "+deathList);
if (deathList.size() > 0) {
HashMap<String, Object> death = deathList.get(0);
if (death.containsKey("original-expiration")) {
return (String) death.get("original-expiration");
//logger.info(messageHeaders.get("messageId")+" original-expiration = "+death.get("original-expiration"));
}
}
} else {
return null;
}
return "";
}
В этом сообщении карта заголовков имеет только 3 ключа, а не все ключи заголовка, которые обычно присутствуют.Мне нужно сделать систему повторных попыток, используя исходный срок действия.
Мой xml весенний интеграция имеет следующий фрагмент:
<int:header-enricher input-channel="fromPushAppointmentErrorHandler1"
output-channel="fromPushAppointmentErrorHandler">
<int:header name="original_expiration" method="vipul" ref="errorhelper"/>
</int:header-enricher>