2016-09-26 5 views
2

私は順番に応答Webサービスの統合 - 要求にアクセスする方法応答クラスのオブジェクト?

<int:chain input-channel="balanceChannel" output-channel="processedItems"> 
 
\t \t <int-ws:outbound-gateway destination-provider="myDestinationProvider" /> 
 
\t </int:chain> 
 
<int:service-activator input-channel="processedItems" 
 
\t \t ref="responseHandler" method="handleResponse" output-channel="nativeQlChannel" />

私を返すウェブサービスにアクセスするためのコードを持っている私は私のするResponseHandlerで応答を得ることができるが、私はまた、私のリクエストオブジェクトをしたいですチャネルを使用してWebサービスに送信しますか?どうすればresponseHandlerの同じリクエストオブジェクトにアクセスできますか?

答えて

0

まあ、すべてのSpring Integrationエンドポイントはチャネルを介して互いに分離されているので、それらをマイクロサービスとみなすことができます。そしてそれは本当に論理的で自然であり、次のエンドポイントは前のエンドポイントの入力について何も知らない。

とにかく、メッセージヘッダーの要件に達することができます。だから、あなたは、下流のヘッダーに要求ペイロードをコピーして、それのためのアクセスを取得:

<int:header-enricher> 
    <int:header name="request" expression="payload"/> 
</int:header-enricher> 

あなたのサービスメソッドhandleResponseは、そのヘッダーへのアクセスを得るために全体Message<?>を受け付けることができるか、あなただけで1つの以上のメソッドのparamを追加することができます@Header("request")注釈。

+0

ありがとう@ artem-bilan、それは私の問題を解決します。ペイロードにいくつかの値を追加して、Webサービスコールに送信すべきではないことを念頭に置いておくことができますか?いくつかの変数を追加する任意の方法? –

関連する問題