我是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的任何帮助?
答案 0 :(得分:0)
好吧,因为那个RequestHandlerRetryAdvice
没有<http:outbound-gateway>
,所以“至少7次自动”完全取决于上游调用者。例如,如果下游有一些异常,则JMS消息驱动程序通道适配器会重新传递相同的消息。
我们与AMQP一样。
那么,“钱包里有什么?”
请注意,在观察重试行为时,请分享DEBUG
类别的org.springframework.integration
日志。