在Mule ESB中,我試圖通過foreach循環轉發自定義HTTP頭,而不將數據存儲在會話變量中。如何通過foreach mule循環來優雅地保留HTTP頭文件?
關於我的使用案例:我有20個不同的流量,包含HTTP入站和2到5個HTTP出站。我正在嘗試將大約10個HTTP頭從入站轉發到所有出站。
我試圖把入站變量複製到出站變量
<flow name="add_http_headers" doc:name="add headers">
<message-properties-transformer scope="outbound">
<add-message-property value="#[message.inboundProperties.X-HeaderName1]" key="X-HeaderName1"/>
</message-properties-transformer>
</flow>
它正常工作,除了在一種情況下的私人流程:在HTTP出口標籤是在換每個標籤:換將每個創建一個新的上下文。出站和入站變量不再可訪問。但我仍然可以訪問會話變量。
所以我有一個補丁,但我不喜歡它: 之前我脫穎而出,每個我改變我所有的頭在會話變量
<message-properties-transformer scope="session" >
<add-message-property value="#[message.inboundProperties.X-HeaderName1]" key="X-HeaderName1"/>
</message-properties-transformer>
然後在我的for-each標籤我重新轉換的會話在出站變量變量:
<message-properties-transformer scope="outbound" >
<add-message-property value="#[sessionVars.X-defaultDistributor]" key="X-defaultDistributor"/>
</message-properties-transformer>
它的工作原理,但我有很多重複的,是有限制複製和轉發的HTTP頭,即使在創建新的騾子上下文的方法嗎?