如何在spring集成中进行响应有效负载记录和转换。

时间:2015-08-20 19:03:06

标签: spring-integration

我设置了expectedResponseType(MyClass.class)。所以OutboundGateway正在将消息转换为我的响应类类型并返回给我。我想记录有效负载以进行调试以及转换。

如何执行此响应有效负载记录和转换。?

我可以通过将响应期望为String并稍后使用marshallers转换为我的类来实现。有没有更简单的方法可用于我的所有出站网关?

1 个答案:

答案 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

中完成的