2016-05-09 11 views
0

グローバル例外ハンドラを作成して、このグローバル例外ハンドラによって個々のフロー(80以上のノーフローがある)の例外がキャッチされるようにする必要があります。グローバル例外ハンドラ - ミュール

基本的には、グローバル設定を追加し、デフォルトのグローバルキャッチ例外戦略を関連付けて、フロー内の例外がここで処理されるようにします。

フローごとに「例外を捕捉する」という戦略を追加することはできますが、明白な理由から避けたいと思う同様のコードを50回以上繰り返さなければなりません。

また、このグローバル例外戦略がフロー固有の情報を与えるように、このグローバル例外戦略に特定のパラメータを渡したいとします。提案してください。

注:ミュールUIの「グローバル要素」にグローバルキャッチ例外戦略オプションが表示されません。

参考文献:

ミュール特定のドキュメントが明確に明らかにしません。

https://docs.mulesoft.com/mule-user-guide/v/3.7/error-handling

は、この要件は非常に似ていますが、などのパラメータを渡すことについて非常に明確ではありませんになります。

How to add a global exception handler/logger once in Mule

+0

グローバルキャッチ例外戦略または選択肢例外の作成(複数の例外を捕えることができる)を作成し、フローの参照例外ストラテジを介して参照します。 https://docs.mulesoft.com/mule-user-guide/v/3.7/reference-exception-strategy?を参照してください。 – star

+0

ご意見ありがとうございました。はい、私はそれを見ました。このリンクでは、次のように述べています。「まだ行っていない場合は、参照例外戦略が参照できるグローバルキャッチ、ロールバック、または選択肢の例外戦略を作成してください。しかし、私はそれを(UIで表示されないので、XMLを使用して)作成する方法は私の挑戦であり、私ははっきりしません。どんな助けもありがとう。 – learner

+0

私はそれを見ると、2つの選択肢があります。(1)グローバルなキャッチ例外戦略を作成し、各フローでこのグローバルポリシーを参照する参照例外戦略を持つ。 (2)グローバルキャッチ例外戦略を作成し、それをグローバル設定で参照させます。オプション(2)の利点は、既存の各フローと将来のフローをグローバルキャッチ戦略に参照する必要がないことです。しかし、上記のいずれかのオプションの最初のステップは、グローバルなキャッチ戦略を作成することです。これはミュールのドキュメントからは明確ではありません(特に、UIで '例外の例外の戦略'が見えない場合)。 – learner

答えて

1

enter image description hereあなたはUIでそれを見ることができます。なぜあなたができないのか分かりません。私の理解が正しいなら。スクリーンショットを見つけてください。

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" basePath="test" doc:name="HTTP Listener Configuration"/> 
    <flow name="TestFlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/> 
    <logger level="INFO" doc:name="Logger"/> 
    <set-payload value="#['Hello World']" doc:name="Set Payload"/> 
    <exception-strategy ref="Choice_Exception_Strategy" doc:name="Reference Exception Strategy"/> 
</flow> 
<choice-exception-strategy name="Choice_Exception_Strategy"> 
    <catch-exception-strategy when="exception.causeMatches(java.lang.ArithmeticException)" doc:name="Catch Exception Strategy- Arithmetic Exception"> 
     <logger level="INFO" doc:name="Logger"/> 
    </catch-exception-strategy> 
    <catch-exception-strategy doc:name="Catch Exception Strategy-All Exception"> 
     <logger level="INFO" doc:name="Logger"/> 
    </catch-exception-strategy> 
</choice-exception-strategy> 

あなたのコメントには、実行可能な方法を使用することができます。

古いバージョンを使用している場合。パレットは、ここに記載されたURLのように見えます https://docs.mulesoft.com/mule-user-guide/v/3.7/catch-exception-strategy

+0

ありがとうございました。これは助けになりました。私はどういうわけか、MELではグローバルキャッチ例外戦略が特定のキーワードであると思っていました。キャッチ例外戦略をグローバルな要素として追加する必要があると私は考えていました。グローバルスコープにノーマルキャッチ例外戦略を追加し、設定を使用してそれを参照して機能させました。再度、感謝します。 – learner

+0

はい。その権利、http://stackoverflow.com/questions/9296549/how-to-add-a-global-exception-handler-logger-once-in-mule。 – star

1

星の提案は良かったです。また、グローバル例外ハンドラにパラメータを渡したい場合は、グローバル例外が読み込むフロー変数を設定し、各フローでこの変数に値を格納することを決して忘れないでください。

+0

お返事ありがとうございます。上記のコメントをご覧ください。 – learner

関連する問題