经过debug发现:
源码内的feign.SynchronousMethodHandler
内的feign.SynchronousMethodHandler#targetRequest
方法内:
Request targetRequest(RequestTemplate template) {
for (RequestInterceptor interceptor : requestInterceptors) {
interceptor.apply(template);
}
return target.apply(template);
}
requestInterceptors长度始终为1,理论上应该为2,我们自定义实现的一个,还有一个seata的。
由此debug后,发现是自定义的未注入spring容器,说明我们的自定义配置类有问题:
原本的:
@Bean
@ConditionalOnMissingBean
public RequestInterceptor requestInterceptor() {
return new CustomFeignRequestInterceptor();
}
修改后:
@Bean
@ConditionalOnMissingBean
public customRequestInterceptor requestInterceptor() {
return new CustomFeignRequestInterceptor();
}