2012-08-08 115 views
0

我正在嘗試爲SPML searchRequest迭代器執行SOAP消息。我的終端正在使用位於IIS之上的Quest SPML Provider工具。Spring WebServiceTemplate持久連接

問題是,我執行搜索,它返回結果和迭代器ID。您獲取此迭代器標識併發出另一個請求(這次是IteratorRequest),Web服務將返回下一組項目。

當通過隨軟件提供的UI或通過SoapUI完成時,我沒有問題,但通過Spring實現時,我得到一個無效的ID。

經過一番挖掘,我發現這https://support.quest.com/SolutionDetail.aspx?id=SOL76284這是說,當一個連接,或會話丟失到端點,迭代器將失效。

我的問題是,有沒有辦法強制WebServiceTemplate.marshalSendAndReceive保持連接活着,直到迭代完成結果?或者我是離線的,需要追求不同的途徑。

非常感謝!

回答

1

messageSender是WebServiceTemplate用來通過選擇的協議發送有效載荷的東西。如果是HTTP,則可以將其配置爲使用HttpComponentsMessageSender,它使用支持持久HTTP連接(保持活動)的HttpClient

注意

  1. HTTP/1.1具有連接保持,但服務器可以決定請求的數目後,關閉或不支持保持活動。
  2. 即使JDK 6相關的類支持保持活躍,但你可以與HttpClient的啓用池
+0

真棒,其實我已經開始尋找到這一點我自己,在編碼了手動消息創建之中,等等。謝謝對於響應=) – dardo 2012-08-08 18:43:08

+0

@ Aravind,是否有一個工作示例顯示如何在wstemplate上設置保持活動狀態? – Espresso 2018-02-22 04:31:51