首页 > 解决方案 > Http outbound-gateway:有没有办法处理非 HTTP 错误,特别是“无连接”错误?

问题描述

我的网关可以HTTP通过自定义错误处理程序(扩展DefaultResponseErrorHandler)处理错误。但是如果出现连接失败错误,网关会保持沉默。

网关架构:

<int-http:outbound-gateway id="myGateway"
                           request-channel="inChannel"
                           reply-channel="outChannel"
                           url="<url>"
                           extract-request-payload="true"                                
                           request-factory="clientHttpRequestFactory"
                           expected-response-type="java.lang.String"
                           error-handler="myRespErrHandler"/>

<bean 
    id="httpComponentsMessageSender"
    class="org.springframework.ws.transport.http.HttpComponentsMessageSender"/>
<bean 
    id="clientHttpRequestFactory"
    class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
        <property name="httpClient" value="#{httpComponentsMessageSender.httpClient}"/>
</bean>

有没有办法处理此类错误?提前谢谢。

标签: javaspringspring-integrationspring-integration-http

解决方案


是的。它称为请求处理程序建议。您可以使用重试来重新连接尝试,也可以使用表达式建议处理非 HTTP 错误:https ://docs.spring.io/spring-integration/docs/5.0.8.RELEASE/reference/html/messaging-endpoints -chapter.html#message-handler-advice-chain


推荐阅读