0

REST リクエストの処理の開始時と終了時に JMS メッセージを送信したいと考えています。私はこのようなことができます:

<set-variable variableName="savedPayload" value="#[payload]" doc:name="Variable" />
<scripting:component doc:name="Groovy">
    <scripting:script engine="Groovy">
        <scripting:text><![CDATA[
            '{"event" : "TRY"}'
        ]]></scripting:text>
    </scripting:script>
</scripting:component>
<jms:outbound-endpoint queue="event.detail" connector-ref="jmsConnector" />
<expression-transformer evaluator="groovy" expression="savedPayload" />

基本的に、JMS は、上記のコードで変数を使用して保存されたメッセージを保持しながら、エントリと終了 (成功または失敗) を記録するためにのみ使用されます。Mule フローでこれを行うための、より短く慣用的な方法は何ですか?

編集:

これを別の言い方をすれば、応答ペイロードにハングアップするために必要な保存/復元なしで、そのアウトバウンドメッセージをペイロードとともに送信する方法はありますか?

4

3 に答える 3

1

Asyncスコープを使用できます。別のブランチでメッセージ プロセッサを非同期的に実行するため、ペイロードの保存/復元について心配する必要はありません。

<async>
    <scripting:component doc:name="Groovy">
      <scripting:script engine="Groovy">
        <scripting:text><![CDATA[
            '{"event" : "TRY"}'
        ]]></scripting:text>
      </scripting:script>
   </scripting:component>
  <jms:outbound-endpoint queue="event.detail" connector-ref="jmsConnector" />
</async>

非同期スコープの詳細: http://www.mulesoft.org/documentation/display/current/Async+Scope+Reference

于 2013-03-12T15:12:49.923 に答える
0

ワイヤータップルーターを使用してみてください。このようにして、ペイラオドを別のチャネルに渡すことができます。このチャネルでは、メインチャネルを邪魔することなく、ペイラッドを変更またはアウトバウンドできます。 ミュールルーターガイド

于 2013-03-14T15:27:18.100 に答える
0

最良のオプションはメッセージ エンリッチャーです:- https://developer.mulesoft.com/docs/display/current/Message+Enricher
メッセージ エンリッチャー コンポーネントは既存のペイロードを妨害せず、その中に何でも設定できます...ペイロードに影響を与えない

于 2015-08-05T06:31:44.133 に答える