首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于ByteArrayInputStream的骆驼路由

基于ByteArrayInputStream的骆驼路由
EN

Stack Overflow用户
提问于 2014-09-03 19:12:51
回答 1查看 3.9K关注 0票数 1

根据骆驼溪文档,可以将消息路由到/从各种数据流。

但是,在我的例子中,我希望将ByteArrayInputStream中的数据(ByteArrayInputStream)发送到骆驼路由。问题是,组件似乎支持的唯一InputStreamFileInputStream,如下所示:

代码语言:javascript
复制
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");

但是,指定ByteArrayInputStream的唯一方法似乎是使用stream:header URI,如下所示:

代码语言:javascript
复制
ByteArrayInputStream byteStream = new ByteArrayInputStream(someData);
from("direct:a").setHeader("stream", constant(byteStream)).to("stream:header");

但是,如果必须将自定义流指定为标头,我看不出如何在from()子句中完成这样的任务。有什么办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 20:00:11

stream:file是作为流读取文件的。不能将java对象发送到该端点。它只从您的文件系统读取文件。

您可以使用Camel的类型转换器将有效负载转换为其他东西,如byte[]

代码语言:javascript
复制
from("stream:file:...")
  .convertBodyTo(byte[].class)
  ...

你可以在这里读到骆驼的类型转换器:http://camel.apache.org/type-converter.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25652000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档