Thank you again for your help!
I tried adapting your example, but for some reason the retry is only happening once... here is my configuration:
HTML Code:
<int-jdbc:message-store id="testMessageStore" data-source="commonDataSource" region="TestRegion" />
<int:channel id="wsRequestChannel" />
<int:channel id="wsReplyChannel">
<int:queue/>
</int:channel>
<int:channel id="wsRetryChannel">
<int:queue message-store="testMessageStore" />
</int:channel>
<int:gateway error-channel="wsRetryChannel" service-interface="com.myorg.myapp.ws.IntegrationTestService">
<int:method name="sendMessage" request-channel="wsRequestChannel" />
<int:method name="receiveMessage" reply-channel="wsReplyChannel" />
</int:gateway>
<int:chain input-channel="wsRetryChannel">
<int:poller fixed-rate="5000">
<int:transactional />
</int:poller>
<int:transformer expression="payload.failedMessage.payload" />
<int:gateway request-channel="wsRequestChannel" />
</int:chain>
<int:chain input-channel="wsRequestChannel" output-channel="wsReplyChannel">
<int-ws:header-enricher>
<int-ws:soap-action value="mySoapAction" />
</int-ws:header-enricher>
<int-ws:outbound-gateway id="testWsGateway" uri="https://myServiceUrl" interceptor="wsSecurityInterceptor" />
</int:chain>
And here are the last log statements that I see after the first retry:
Code:
Caused by: org.springframework.ws.client.WebServiceTransportException: Not Found [404]
at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:627)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:551)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:502)
at org.springframework.integration.ws.SimpleWebServiceOutboundGateway.doHandle(SimpleWebServiceOutboundGateway.java:88)
at org.springframework.integration.ws.AbstractWebServiceOutboundGateway.handleRequestMessage(AbstractWebServiceOutboundGateway.java:176)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:97)
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)
... 83 more
2012-07-18 13:25:00 QueueChannel [DEBUG] preSend on channel 'wsErrorChannel', message: [Payload=org.springframework.integration.MessageHandlingException: error occurred in message handler [org.springframework.integration.ws.SimpleWebServiceOutboundGateway#882dfc]][Headers={timestamp=1342632300160, id=2f7ed54b-d912-400c-8f61-3a90241272ef, errorChannel=org.springframework.integration.core.MessagingTemplate$TemporaryReplyChannel@2b9562b6, replyChannel=org.springframework.integration.core.MessagingTemplate$TemporaryReplyChannel@2b9562b6}]
2012-07-18 13:25:00 QueueChannel [DEBUG] postSend (sent=true) on channel 'wsErrorChannel', message: [Payload=org.springframework.integration.MessageHandlingException: error occurred in message handler [org.springframework.integration.ws.SimpleWebServiceOutboundGateway#882dfc]][Headers={timestamp=1342632300160, id=2f7ed54b-d912-400c-8f61-3a90241272ef, errorChannel=org.springframework.integration.core.MessagingTemplate$TemporaryReplyChannel@2b9562b6, replyChannel=org.springframework.integration.core.MessagingTemplate$TemporaryReplyChannel@2b9562b6}]
The above is the same behavior I was seeing with the configuration that I posted initially.