我正在使用Apache camel开发工作流应用程序
商业用例:
现在我陷入了第4步
我的骆驼路线是
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route streamCache="true">
<from uri="cxf:bean:proxyEndpoint"/>
<process ref="myProcessor"/>
<!-- processing request & logging -->
<setBody>
<!-- set request as body required for calling external web service -->
</setBody>
<to uri="cxf:bean:panEndpoint"/>
<!-- <to uri="file:C:/LOG" /> -->
<!-- <process ref="myProcessor2"/> -->
<log message=">>> ${body}" loggingLevel="INFO"/>
</route>
</camelContext>
我可以调用外部服务,但是在<to uri="cxf:bean:panEndpoint"/>
之后如果我尝试记录正文,那么在路由到文件的情况下我会得到相同的值。
当我尝试路由到处理器并打印System.out.println(exchange.getIn().getBody());
时
我收到sun.net.www.protocol.http.httpurlconnection$httpinputstream
,我无法解析或处理
调用外部服务并收到正确的响应
任何帮助将不胜感激。
答案 0 :(得分:0)
告诉Camel你想要身体的类型,并使用它的类型转换器来实现(如果可能的话)。
因此,如果您希望身体为InputStream
做
exchange.getIn().getBody(InputStream.class)
如果你想要它作为字符串,那么做
exchange.getIn().getBody(String.class)
在这里阅读更多内容
在使用溪流时,请注意流缓存