메시지에서 원래의 페이로드를 복원하려고 할 때 나는 뮬 메시지의 범위와 관련하여 혼란스러워하는이 문제에 부딪혔습니다. 아래 뮬 구성 주어 I는 초기에 페이로드가 test.Name
VM 종점에서 수신된다고 가정 흐름의 끝에서 복원 될 거라고 (는 config에서 1 및 2 참조)뮬 메시지의 범위는 무엇입니까?
<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.을 페이로드로 남겨 둡니다.
뮬 메시지의 범위는 무엇입니까?
이 경우 scripting reference documentation은 groovy 스크립트에 originalPayload
의 바인딩이 있음을 나타냅니다.
org.mule.api.expression.RequiredValueException: Expression Evaluator "groovy"
with expression "originalPayload" returned null but a value was required.
무슨 문제가 될 수 그러나, 2에서 변압기는 내가 예외가
<expression-transformer evaluator="groovy" expression="originalPayload" />
로 교체하면?
감사
많은 감사 :
것은 둘 다에 의존하기 때문에! 너 락! 메시지 범위의 주제에 대해 자세히 설명하는 문서 페이지를 가리킬 수 있습니까? originalPayload의 문제와 관련하여 재현을 돕기 위해 예제를 게시 하시겠습니까? – beluchin
나는 모든 문서 페이지를 다시 생각할 수 없다 : 메시지 스코프 : (그렇다면'message.originalPayload'와'originalPayload' 사이의이 불일치에 대한 새로운 이슈를여십시오. –