异常时Spring绑定HTTP出站网关重试

时间:2016-04-14 07:38:25

标签: spring-integration

我是Spring Integration的新手。下面给出的是我的代码。

<int-jms:message-driven-channel-adapter
    id="testListenter" destination-name="testQueue"
    channel="setTestHeader" concurrent-consumers="2"
    max-concurrent-consumers="5" connection-factory="amqConnectionFactory" />

<http:outbound-gateway request-channel="httpChannel"
    url="http://APITesting/testHttp/v1.0" http-method="POST"
    header-mapper="headerMapper" reply-channel="response.header.enricher"
    error-handler="testErrorHandler"
    expected-response-type="com.test.domain.response.responseObject" message-converters="messageConverters" />

<util:list id="messageConverters">
    <bean id="formHttpMessageConverter" class="org.springframework.http.converter.FormHttpMessageConverter"/>
    <bean id ="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</util:list>

我的日志中没有看到任何例外情况。

现在我期待响应成为JSON。但如果响应不是JSON并且是raw类型,则出站网关将自动触发至少7次。

为什么在这种情况下会触发API的任何帮助?

1 个答案:

答案 0 :(得分:0)

好吧,因为那个RequestHandlerRetryAdvice没有<http:outbound-gateway>,所以“至少7次自动”完全取决于上游调用者。例如,如果下游有一些异常,则JMS消息驱动程序通道适配器会重新传递相同的消息。

我们与AMQP一样。

那么,“钱包里有什么?”

请注意,在观察重试行为时,请分享DEBUG类别的org.springframework.integration日志。