2

ラバフローの実行時にスプリングプロパティに例外メッセージを割り当てる方法を探しています(ラバ3.3.0)

これは私のコードスニペットがどのように見えるかです:

       <catch-exception-strategy>
            <logger message="----->Exception is #[exception.causeException]"
                level="INFO" />
            <custom-transformer
                class="com.company.transformer.VelocityMessageTransformer">
                <spring:property name="velocityEngine" ref="velocityEngine" />
                <spring:property name="templateName" value="soap11Fault.vm" />
                <spring:property name="beanClass">
                    <spring:bean parent="abstractSoap11ClientFault">
                        <spring:property name="faultString" value="Invalid Request" />
                        <spring:property name="detail" value="${exception.causeException}" />
                    </spring:bean>
                </spring:property>
            </custom-transformer>
        </catch-exception-strategy>

detailここで例外の原因をプロパティに割り当てたい:

<spring:property name="detail" value="${exception.causeException}" />

しかし、春はプロパティファイルでこのプロパティを探しています。私もこれをやってみました

 <spring:property name="detail" value="${#[exception.causeException]}" /> but doesn't work.

実行時にMule式をSpringプロパティに渡す方法はありますか?

4

1 に答える 1

2

プロパティはアプリケーションの初期化中に設定されます。渡す値は実行時に評価されるため、機能しません。

あなたがする必要があるのはcom.company.transformer.VelocityMessageTransformerextendを作ることorg.mule.transformer.AbstractMessageTransformerです。次に、をオーバーライドする必要がありますtransformMessage(MuleMessage message, String outputEncoding)。これにより、現在のメッセージとそれに関連する例外ペイロードにアクセスできるようになります。例外ペイロードは、#[exception]式で取得するものです。

于 2013-02-06T19:34:18.423 に答える