2012-03-22 5 views
2
<flow> 
<jms:inbound-endpoint queue="InputQueue"/> 
<component class="MyComponent"/> 
<choice> 
    <when expression="/Response/Status/Success" evaluator="xpath"> 
     <jms:outbound-endpoint queue="LogInputQueue"/> 
     <jms:outbound-endpoint queue="SuccessQueue"/> 
    </when> 
    <when expression="/Response/Status/Error" evaluator="xpath"> 
     <jms:outbound-endpoint queue="LogInputQueue"/> 
     <jms:outbound-endpoint queue="ErrorQueue"/> 
    </when> 
    <otherwise> 
     <jms:outbound-endpoint queue="LogInputQueue"/> 
     <jms:outbound-endpoint queue="ExceptionQueue"/> 
    </otherwise> 
</choice> 
</flow> 

このフローでは、MyComponentは成功メッセージを応答またはエラー応答または例外として返しますか?Muleで元のペイロードメッセージを記録または処理する方法

すべての場合、LogInputQueueのInputQueueから元のメッセージをログに記録する必要があります。私はどのように私の流れでこれを達成するのですか?

答えて

2

ログファイルを作成しましたか?その場合、あなたはSLF4Jを使用してのlog4jを実装し、LOG_LEVELは、「情報」等...

your_category、「エラー」、「デバッグ」、レベルご希望の伐採であるライン

<logger level="log_level" category="your_category" message="#[message:payload]"/> 

を使用する必要がありますlog4j.propertiesファイルで定義されているログのカテゴリです(実際にはオプションです)。

とmessage = "#[expression:value]"は、式:scope:keyの組み合わせとして記録されるメッセージです。スコープはここではオプションです。

0

log4jまたはslf4jを使用すると、ペイロードを記録できます。

[ペイロード]、コンソールにこのログペイロードを使用するロガーコンポーネントがあります。

0

あなたが述べたように、あなたは何をする必要があるか、すべての場合にLogInputQueueへのInputQueueから元のメッセージを送信する必要があるためである: -
1内のすべての例から<jms:outbound-endpoint queue="LogInputQueue"/>を削除します選択ブロック
2店の流れの終わりにちょうどJMSインバウンドエンドポイント
3.後にそれを置くことによってにInputQueue変数でから元のペイロードは、選択ルータの後から設定されたペイロード・コンポーネントにペイロードを設定元のペイロード012を保存した変数 4.設定したペイロードコンポーネントの後に<jms:outbound-endpoint queue="LogInputQueue"/>と入力します。あなたは要件あたりとしてLogInputQueueに、元のペイロードを送信することができます。このように

関連する問題