0
在試圖恢復郵件中的原始有效內容時,我遇到了這個問題,它使我對關於騾郵件範圍感到困惑。下面給出的騾配置,我最初假定在test.Name
VM端點接收所述有效載荷打算在流結束時被恢復(見1和2在config):騾信息的範圍是什麼?
<mule ...>
<vm:endpoint name="replacePayloadWithFoo.Name"
path="replacePayloadWithFoo.Path" />
<flow name="test">
<vm:inbound-endpoint name="test.Name" path="test.Path"
exchange-pattern="request-response" />
<!-- 1. Down below, I wanted to restore the payload at this point -->
<expression-transformer evaluator="string"
expression="bar" />
<outbound-endpoint ref="replacePayloadWithFoo.Name"
exchange-pattern="request-response" />
<!-- 2. The transformer below does not restore the payload at 1. -->
<expression-transformer evaluator="groovy"
expression="message.originalPayload" />
</flow>
<flow name="replacePayloadWithFoo">
<inbound-endpoint ref="replacePayloadWithFoo.Name"
exchange-pattern="request-response" />
<expression-transformer evaluator="string"
expression="foo" />
</flow>
</mule>
然而,似乎進入test
流程的消息在出站端點處結束於replacePayloadWithFoo
。 2.處的變壓器將"foo"
作爲有效負載。
騾訊息的範圍是什麼?
順便提一下,scripting reference documentation表示在groovy腳本中存在對originalPayload
的綁定。然而,如果在2變壓器替換
<expression-transformer evaluator="groovy" expression="originalPayload" />
我得到一個異常:
org.mule.api.expression.RequiredValueException: Expression Evaluator "groovy"
with expression "originalPayload" returned null but a value was required.
可能是什麼問題?
由於
非常感謝!你搖滾!你能指出一個文檔頁面來詳細說明消息範圍的主題嗎?關於originalPayload的問題,您是否希望我發佈一個示例來幫助重現它? – beluchin
我想不出任何文檔頁面:消息範圍:(是的,請爲'message.originalPayload'和'originalPayload'之間的這種差異打開一個新的問題,這是值得更深入的瞭解。 –