使用生成的值修改Payload

时间:2016-03-15 17:13:38

标签: spring-integration messaging

我想为通过http入站端点传入的消息添加动态标头。 目标是返回XML有效负载以及地图中由dnamically生成的标头,如表所示 EnhancedMessage类。然后应将EnhancedMessage消息发送到下面的processChannel; 我尝试使用如图所示的Header richher,但是我从http入站而不是从入站获得了原始消息 消息已修改,由myBean返回。可以这样做吗?我希望链中的所有端点都能收到标头。 新的Serializable消息应该看起来像:

    class EnhancedMessage implements Serializable{
    String getXMLRaw(){}
    Map<String,String> getHeaders(){}

}

    <int-http:inbound-channel-adapter id="dataInbound"
            supported-methods="POST" status-code-``expression="T(org.springframework.http.HttpStatus).ACCEPTED"
            path="/ops/process" channel="processChannel">
    </int-http:inbound-channel-adapter>

<int:chain input-channel="processChannel">
         <int:header-enricher>
             <ref bean="myBean"/>
        </int:header-enricher>

        <int:recipient-list-router>
            <int:recipient channel="out1" />
            <int:recipient channel="out2" />
        </int:recipient-list-router>
</int:chain>

Everything works except the message enhancement. I would appreciate any directions on how to proceed.

1 个答案:

答案 0 :(得分:0)

Header Enricher正好适用于headers payload

从一方面,您可以考虑<enricher>payload可以修改<transformer>的部分。

甚至可以完整headers,以便您完全控制消息 - payload和{{1}}。

请阅读更多Reference Manual