私の要件はなど、JDBC、Webサービスなどの外部ソースによって消費される総時間を計算することで、エンドポイント情報
私は、リクエスト・ハンドラ・アドバイスチェーンが追加されました必要なエンドポイントを計算し、時間を計算しました。それは完全に動作します。 エンドポイントコンポーネントの識別子も追加する必要があります。アドバイスクラスを介してエンドポイントIDを取得する方法はありますか?
例:
<int-jdbc:stored-proc-outbound-gateway id="myProcID" request-channel="myChannel" data-source="dataSource"
....
<int-jdbc:request-handler-advice-chain>
<ref bean="statsAdvice" />
</int-jdbc:request-handler-advice-chain>
</int-jdbc:stored-proc-outbound-gateway>
は、私がアドバイスクラスにJDBCエンドポイントIDを取得することはできますか?提案してください。 ありがとうございます。
アドバイスクラスがAbstractRequestHandlerAdviceを継承し、キャストしようとしたとき NamedComponentコンポーネント=(NamedComponent)target;
私は以下の例外を取得しています - org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.integration.jdbc.StoredProcOutboundGateway#0]; nested exception is java.lang.ClassCastException: org.springframework.integration.handler.AbstractReplyProducingMessageHandler$AdvisedRequestHandler
修正は、4.3.2リリースで正常に動作している:あなたのアドバイスは、ターゲットオブジェクトがdoInvoke
でパラメータとして利用可能であるAbstractRequestHandlerAdvice
拡張する場合
((AbstractReplyProducingMessageHandler.RequestHandler) target).getAdvisedHandler().getComponentName();
編集した質問を参照してください。 –
あなたの助けが大変ありがとうございます。 –
ああ、そうです。ごめんなさい;私はそのラッパーを忘れていました - その代理人へのアクセスを提供する必要があります。改善[JIRA Issue](https://jira.spring.io/browse/INT)を開いてください。 –