Spring Integration:发送请求时未调用ClientHttpRequestInterceptor intercept()方法

时间:2016-05-06 06:27:01

标签: spring

我已经设置了一个弹簧集成应用程序,并希望使用ClientHttpRequestInterceptor记录出站请求。 设置如下。 我使用curl发送了Http-get并获得了结果,但调试app时,方法CustomClientHttpRequestInterceptor.intercept()永远不会被调用。

我一定错过了设置中的内容。谢谢你的帮助。

配置:

<bean id="customRT" class="org.springframework.web.client.RestTemplate">
    <property name="interceptors">
        <list>
            <bean class="hello.CustomClientHttpRequestInterceptor" />
        </list>
    </property>
</bean> 

<int:chain...>
    <int:header-enricher....
    <int-http:outbound-gateway url="http://example.com/vhosts"
                           rest-template="customRT"
                           http-method="GET"/>
</int:chain>
public class CustomClientHttpRequestInterceptor implements   ClientHttpRequestInterceptor {
    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
        throws IOException {
        logger.info("request.getURI().toString());      
        return execution.execute( request, body );
    }

1 个答案:

答案 0 :(得分:0)

配置和代码是正确的。我已经忘记了安装了缓存,这就是为什么intercept()方法永远不会被调用的原因。