2

例外をスローする可能性のあるラバフローがあります(コネクタに接続できない、コンポーネントが例外をスローするなど)。これが発生すると、例外が発生した場所でラバの流れが停止します。フローがスローする例外をキャッチし、例外が発生したことを示す電子メール通知を送信する必要があります。(特に、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を使用しています。手伝ってもらえますか?

4

2 に答える 2

2

Mule 3.3では、私は通常そのために使用catch-exception-strategyしています。

Mule 3.2以前でdefault-exception-strategyは、が正しい選択ですが、一部の例外が適切にキャッチされない可能性があります。これはMule3.3でオーバーホールされました。アップグレードする時間ですか?

于 2013-03-14T16:59:06.187 に答える
1

これを使ってみてください。}がから欠落していました。

<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>
于 2016-02-10T14:19:29.160 に答える