Значения заголовка теряются весной интеграции - PullRequest
0 голосов
/ 04 декабря 2018

Я использую заголовок, который использует существующие заголовки, чтобы установить значение нового заголовка.Однако существующая информация заголовка теряется, и остается только 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>

1 Ответ

0 голосов
/ 04 декабря 2018

Прежде всего, похоже, вам также нужно overwrite="true" для этого <int:header name="original_expiration">, поскольку логика в вашем vipul() собирается создать новое значение для существующего заголовка, и этого не произойдет, так как значениеуже есть в заголовках.

Тот факт, что вам не хватает некоторых заголовков в этой логике, может быть продиктован неким восходящим потоком <transformer>, который возвращает все Message без копирования заголовков запроса.

...