首页 > 解决方案 > 将 CachedOutputStream 转换为字符串

问题描述

将 CachedOutputStream 转换为字符串。
将骆驼从 2.12 升级到 2.23 后,我的路线出现问题,相同的代码相同的路线。

调用端点后的响应是 org.apache.camel.converter.stream.CachedOutputStream
我尝试将其转换CachedOutputStream为字符串的类型。

String body = exchange.getIn().getBody(String.class);
logger.info("FJA the string after caling endpoint: " + body);

我 dk.bankconnect.hub.Util 后 FJA 后强度:

-0��phjA����/h`�FhI[����G<������,�Z���f���=��Rϝ��s#���O� ~~#~G�t

如何将 CachedOutputStream 转换为字符串?

我尝试了许多不同的方法来避免响应以流的形式出现。但是,我没有成功。

这是我的路线的一小段:

from("direct:sdc:webservice")
            .setProperty("webservice", constant(Boolean.TRUE))    
            .setProperty("duration", simple("Forwarding request to ${property.datacentral} datacentral"))
            .choice().when().simple("${property.Tracked} == true").bean(Util.class, "dura-tion").end()
            .bean(Util.class, "tracker")
            .bean(Util.class, "foer")
            .to(Util.getProperty("sdc.url"))
            .bean(Util.class, "efter")
            .convertBodyTo(Document.class)            
            .setProperty("duration", simple("Receiving response from ${proper-ty.datacentral} datacentral"))
            .choice().when().simple("${property.Tracked} == true").bean(Util.class, "dura-tion").end()
            .bean(Util.class, "tracker")
            .setProperty(SoapError.FAULT, xpath("/soapenv:Envelope/soapenv:Body/soapenv:Fault/faultstring/text()", String.class).namespace("soapenv", Namespace.SOAP))
            .end();

我的 convertBodyTo 失败了,因为它突然变成了一个流。

标签: apacheapache-camel

解决方案


好的,很短

调用端点后的响应类型为 org.apache.camel.converter.stream.CachedOutputStream 我尝试将 CachedOutputStream 转换为字符串。

String body = exchange.getIn().getBody(String.class);

这不是可读的字符串,而是许多特殊字符。

弗兰克:-)


推荐阅读