使用生成的值修改有效负载

Modifying Payload with Generated Values

我想向通过 http 入站端点传入的消息添加动态 headers。 目标是 return XML 有效负载加上地图中动态生成的 headers ,如下所示 EnhancedMessage class。然后应将 EnhancedMessage 消息转发到下面的 processChannel; 如图所示,我尝试使用 Header enricher,但我从 http 入站而不是 消息修改了由 myBean 编辑的 return。这可以做到吗?我希望链中的所有端点都收到 headers。 新的可序列化消息应类似于:

    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.

Header Enricher 完全适用于 headers 它对 payload 没有任何作用。

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

甚至是完全 <transformer>,它允许您完全控制消息 - 它的 headerspayload.

请阅读更多内容 Reference Manual