例外をスローする可能性のあるラバフローがあります(コネクタに接続できない、コンポーネントが例外をスローするなど)。これが発生すると、例外が発生した場所でラバの流れが停止します。フローがスローする例外をキャッチし、例外が発生したことを示す電子メール通知を送信する必要があります。(特に、JMSからの読み取りのように非同期で実行されるフローの場合)。例外をキャッチして電子メールを送信するには、フローのどの要素を使用する必要がありますか?
私が試してみました:
<default-exception-strategy>
<smtp:outbound-endpoint host="${email.relay.host}"
mimeType="text/html" from="${email.support.from" to="${email.support.to}"
cc="${email.support.cc}" bcc="${email.support.bcc}" subject="${email.support.subject}">
</smtp:outbound-endpoint>
</default-exception-strategy>
しかし、これはまったく開始されません。私も試しました:
<exception-type-filter expectedType="java.lang.Exception"></exception-type-filter>
ただし、これはフローが例外をスローした場合にのみ機能するようです(通常のフロー機能が変更されます)。
@DavidDossot-次のスニペットを追加しました。
次のスニペットを追加しました:
<catch-exception-strategy>
<smtp:outbound-endpoint host="${email.relay.host}"
mimeType="text/html" from="${email.support.from" to="${email.support.to}"
cc="${email.support.cc}" bcc="${email.support.bcc}" subject="${email.support.subject}">
</smtp:outbound-endpoint>
</catch-exception-strategy>
しかし、ラバアプリを起動するとエラーが発生します:
ルート例外スタックトレース:org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:要素'catch-exception-strategy'で始まる無効なコンテンツが見つかりました。'{" http://www.mulesoft.org/schema/mule/core":abstract-message-processor、 " http://www.mulesoft.org/schema/mule/core":abstract-outbound-の1つエンドポイント、 " http://www.mulesoft.org/schema/mule/core":response 、 " http://www.mulesoft.org/schema/mule/core":abstract-exception-strategy、 " http:/ /www.mulesoft.org/schema/mule/core":abstract-message-info-mapping}'が必要です。com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)atcom.sun.org.apache.xerces。 internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)+ 3 more(デバッグレベルのログを設定または'- Dmule.verbose.exceptions = true'すべてに対して)
私はMule3.2.2を使用しています。手伝ってもらえますか?