首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Camel FTP路由交换中获取实际文件对象

如何从Camel FTP路由交换中获取实际文件对象
EN

Stack Overflow用户
提问于 2015-08-03 12:45:16
回答 2查看 9.1K关注 0票数 3

在我的Camel路由器中:

代码语言:javascript
复制
from(<SourceURI>)
.process(new Processor() {
    @Override
    public void process(Exchange exchange) throws Exception {
        // I want to extract the file object from the exchange
    }
.to(<targetURI>).

我如何才能做到这一点?

我试过了,比如exchange.getIn().getHeader(Exchange.FILE_NAME, String.class),它给了我文件名。我正在搜索一些Exchange.FILE,它给了我实际的文件对象。我的最终目标是在处理器中提取文件,因为路由的交换是一个归档文件。

EN

回答 2

Stack Overflow用户

发布于 2015-08-03 15:36:11

从正文中获取文件。Camel使用'org.apache.camel.component.file.GenericFile‘存储为文件体。但是您可以使用Camel的类型转换器来获得所需类型的文件。

例如,您可以获取不同类型的内容,例如:

代码语言:javascript
复制
String text = exchange.getIn().getBody(String.class);
byte[] bytes = exchange.getIn().getBody(byte[].class);
InputStream is = exchange.getIn().getBody(InputStream.class); 
票数 10
EN

Stack Overflow用户

发布于 2018-11-16 00:40:45

对于那些拥有from("file:...")的用户,可以使用以下方法:

代码语言:javascript
复制
File in = exchange.getIn().getBody(File.class);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31779575

复制
相关文章

相似问题

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