I am trying to execute a SOAP message for an SPML searchRequest iterator. My endpoint is using the Quest SPML Provider tool which sits on top of IIS.
The problem is, I execute the search, it returns the results and an iterator ID. You take this iterator ID and make another request (this time an IteratorRequest) and the web service will return the next set of items.
When this is done through either the UI provided with the software, or through SoapUI, I have no problems, but when implementing through Spring, I get an invalid ID.
After some digging, I found this https://support.quest.com/SolutionDetail.aspx?id=SOL76284 which is stating that when a connection, or session is lost to the endpoint, the iterator will be made invalid.
My question is, is there a way to force a WebServiceTemplate.marshalSendAndReceive to keep a connection alive until I’m done iterating through the results? Or am I offbase, and need to pursue a different avenue.
Thanks a bunch!
The messageSender is what is used by the WebServiceTemplate to send the payload over protocol of choice. If it is HTTP then you can configure it to use HttpComponentsMessageSender that uses HttpClient which supports persistent HTTP connections (keep-alive).
NOTE