Я новичок в интеграции Spring. Ниже приведен мой код.Spring Integration HTTP Outbound Gateway Retry on Exception
<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 запускается в случае таких сценариев?
Привет, Артем, да, вы правы. Мой вызывающий абонент - это JMS Message Driven Channel Adapter, и я не настроил канал ошибок. но я понял, что обработчик ошибок, который я настроил для исходящего шлюза, должен был поймать исключение. Пожалуйста, поправьте меня, если я ошибаюсь.
–
Вы должны переместить код на свой вопрос с помощью функции 'edit'. И нет, «error-channel» для предотвращения повторной доставки должен быть объявлен в «JMS Message Driven Channel Adapter». –
Благодарим за предложение. Я добавил свой код к вопросу. –