Problema com escape de application / json sendo escapado no Spring Integration 4.2

Criando um proxy HTTP no Spring Integration 4.2.1.RELEASE. O Environment está usando o BOM da plataforma 2.0.0.RELEASE mais recente, incluindo uma camada spring-webmvc - em execução no Tomcat7.

As chamadas são "application / json", transmitidas pela camada da web para um ponto de extremidade do servidor REST diferente (o método setupUrl reescreve a URL). O código chama com êxito o servidor externo, obtém uma boa resposta e gerencia a resposta antes de retornar ao chamador.

@Bean
    public IntegrationFlow httpProxyFlow()  {
        return IntegrationFlows
            .from((MessagingGateways g) ->
                    g.httpGateway("/my-service/**")
                            .messageConverters(new MappingJackson2HttpMessageConverter())
                        .payloadFunction(httpEntity ->
                                ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
                                        .getRequest()
                                        .getQueryString())
                        .requestPayloadType(String.class))
                        .handleWithAdapter(a ->
                                a.httpGateway(this::setupUrl)
                                        .httpMethodFunction(this::getMethodFunction)
                                        .errorHandler(new PassThroughErrorHandler())
                                        .encodeUri(false)
                                        .expectedResponseType(String.class)
                        ).get();
    }

A chamada diretamente para o terminal REST retorna

{"afiliado": "teste", "produtor": "TST", "produtos" ...

Enquanto a chamada através do Spring Integration retorna

"{\" afiliado \ ": \" teste \ ", \" produtor \ ": \" TST \ ", \" produtos \ ": [{\"

Tentei várias combinações de adição de StringHttpMessageConverter ao adaptador de saída. Brincando com as codificações (UTF-8 em vez de ISO-8859-1). Algo está mexendo com a sequência de respostas, e parece que DEPOIS deixa o Spring Integration o mais próximo possível. A última vez que o Integration toca, é na linha 117 HttpRequestHandlingMessagingGateway.handleRequest (). Ainda parece correto no objeto de resposta.

É possível que o problema seja realmente com o spring-mvc, que é o primeiro lugar em que vejo a string mutilada na depuração.

questionAnswers(1)

yourAnswerToTheQuestion