我已经设置了一个弹簧集成应用程序,并希望使用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 );
}
答案 0 :(得分:0)
配置和代码是正确的。我已经忘记了安装了缓存,这就是为什么intercept()方法永远不会被调用的原因。