我设置了expectedResponseType(MyClass.class)。所以OutboundGateway正在将消息转换为我的响应类类型并返回给我。我想记录有效负载以进行调试以及转换。
如何执行此响应有效负载记录和转换。?
我可以通过将响应期望为String并稍后使用marshallers转换为我的类来实现。有没有更简单的方法可用于我的所有出站网关?
答案 0 :(得分:1)
expectedResponseType(MyClass.class)
被翻译为
httpResponse = this.restTemplate.exchange(realUri, httpMethod, httpRequest, (Class<?>) expectedResponseType);
最后一个执行此操作:
public ResponseEntityResponseExtractor(Type responseType) {
if (responseType != null && Void.class != responseType) {
this.delegate = new HttpMessageConverterExtractor<T>(responseType,
getMessageConverters(), logger);
}
else {
this.delegate = null;
}
}
如您所见,它正在将自己的logger
复制到HttpMessageConverterExtractor
。
因此,我认为您的logging
要求可以为DEBUG
类别切换TRACE
(甚至org.springframework.web.client.RestTemplate
),从而取得一些良好的效果。
从另一方面来说,你总是可以扩展RestTemplate
以使其有一些钩子。
从Spring Integration的角度来看,我们无能为力。因为整个硬转换工作都是在RestTemplate
。