根据骆驼溪文档,可以将消息路由到/从各种数据流。
但是,在我的例子中,我希望将ByteArrayInputStream中的数据(ByteArrayInputStream)发送到骆驼路由。问题是,组件似乎支持的唯一InputStream是FileInputStream,如下所示:
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");但是,指定ByteArrayInputStream的唯一方法似乎是使用stream:header URI,如下所示:
ByteArrayInputStream byteStream = new ByteArrayInputStream(someData);
from("direct:a").setHeader("stream", constant(byteStream)).to("stream:header");但是,如果必须将自定义流指定为标头,我看不出如何在from()子句中完成这样的任务。有什么办法吗?
发布于 2014-09-03 20:00:11
stream:file是作为流读取文件的。不能将java对象发送到该端点。它只从您的文件系统读取文件。
您可以使用Camel的类型转换器将有效负载转换为其他东西,如byte[]
from("stream:file:...")
.convertBodyTo(byte[].class)
...你可以在这里读到骆驼的类型转换器:http://camel.apache.org/type-converter.html
https://stackoverflow.com/questions/25652000
复制相似问题