0

SPML searchRequest イテレータの SOAP メッセージを実行しようとしています。私のエンドポイントは、IIS の上にある Quest SPML Provider ツールを使用しています。

問題は、検索を実行すると、結果と反復子 ID が返されることです。この反復子 ID を取得して別の要求 (今回は IteratorRequest) を作成すると、Web サービスは次のアイテムのセットを返します。

これをソフトウェアで提供される UI または SoapUI を介して行う場合は問題ありませんが、Spring を介して実装すると無効な ID を取得します。

掘り下げた後、これを見つけましたhttps://support.quest.com/SolutionDetail.aspx?id=SOL76284これは、エンドポイントへの接続またはセッションが失われると、イテレーターが無効になることを示しています。

私の質問は、結果の繰り返しが完了するまで WebServiceTemplate.marshalSendAndReceive を強制的に接続を維持する方法はありますか? それとも、私は基地外で、別の道を追求する必要があります.

本当にありがとう!

4

1 に答える 1

1

messageSenderは、選択したプロトコルを介してペイロードを送信するために WebServiceTemplate によって使用されるものです。HTTP の場合は、永続的な HTTP 接続 (キープアライブ) をサポートするHttpClientを使用するHttpComponentsMessageSenderを使用するように構成できます。

ノート

  1. HTTP/1.1 には接続のキープアライブがありますが、サーバーは多数の要求の後に接続を閉じるか、キープアライブをサポートしていません。
  2. JDK 6 関連のクラスでもキープアライブをサポートしていますが、HttpClient でプーリングを有効にすることができます
于 2012-08-08T18:33:18.617 に答える