我有一個簡單的Mule流,其中我通過HTTP端點接收XML消息,然後對其進行一些處理。第一步是通過另一個出站HTTP端點將消息發送到Web服務。該服務只保存消息並且不對其進行處理。因此,我實際上希望忽略出站端點的返回值,並繼續處理最初收到的消息。我試着讓端點在路上,但是我現在的Mule信息變空了。忽略來自Mule HTTP出站端點的響應並繼續處理
如何調用端點,但忽略任何返回並繼續使用原始消息進行處理?
我有一個簡單的Mule流,其中我通過HTTP端點接收XML消息,然後對其進行一些處理。第一步是通過另一個出站HTTP端點將消息發送到Web服務。該服務只保存消息並且不對其進行處理。因此,我實際上希望忽略出站端點的返回值,並繼續處理最初收到的消息。我試着讓端點在路上,但是我現在的Mule信息變空了。忽略來自Mule HTTP出站端點的響應並繼續處理
如何調用端點,但忽略任何返回並繼續使用原始消息進行處理?
你可以使用一個<wiretap>
:http://www.mulesoft.org/documentation/display/current/Routing+Message+Processors#RoutingMessageProcessors-WireTap
或者使用<async>
範圍:http://www.mulesoft.org/documentation/display/current/Async+Scope+Reference
或者,如果你想存儲在一個變量的響應使用<enricher>
而是獨自離開當前載荷:http://www.mulesoft.org/documentation/display/current/Message+Enricher
請注意,竊聽和濃縮器是同步的,並會阻止異步不會進行的進一步處理。
在這種情況下,異步應該是一個更好的選擇。
Mule中的異步有助於繼續處理,忽略異步中調用的消息處理器的結果。
ex:
<flow name="sample" >
<http:inbound-endpoint ...... />
.... Some processing.....
<async>
<http:outbound-endpoint ....... />
</async>
...... Continue with the processing with the original message....
</flow>
希望這會有所幫助。