1

タグのexception-pattern属性は機能しますか? commit-transactionつまり、デフォルトの例外戦略では、これを機能させることができます。

<commit-transaction exception-pattern="*"/>

しかし、これではありません:

<commit-transaction exception-pattern="some.specific.Exception"/>

関連する構成のスニペットを次に示します。

<mule ...>
    <jms:activemq-connector name="JMSConnector" brokerURL="${messaging.brokerURL}" />
    <flow name="aFlow">
        <jms:inbound-endpoint name="endpoint.Name" queue="${queue}"
                              exchange-pattern="request-response"
                              connector-ref="JMSConnector" />
        <component>
            <spring-object bean="ThrowsBusinessException" />
        </component>

        <default-exception-strategy>
            <commit-transaction exception-pattern="com.BusinessException" />
        </default-exception-strategy>
    </flow>
</mule>

を使用するexception-pattern="*"と、JMS メッセージが再配信されません。ただし、より具体的な を使用するexception-patternと、メッセージが再配信されます。スローされた例外がBusinessException.

これは Mule CE 3.2.1 にあります。

ありがとう!

4

1 に答える 1

1

中心的な問題は次のとおりです。コンポーネントによってスローされたすべての例外は、org.mule.component.ComponentException.

default-exception-strategy以前は、この例外をその根本原因にアンラップできませんでした。これは、exception-patternが に適用されることを意味しorg.mule.component.ComponentExceptionます。

IMO これは Mule のバグです。MULE-6218を開きました。投票/視聴お願いします。

それまでの間、Mule 例外を処理する前にアンラップするカスタム例外戦略を作成できます。これには、次を使用します。ExceptionHelper.getRootException(ex)

于 2012-05-08T22:36:47.293 に答える