3

在我的骆驼路由器中:

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能给我实际文件对象的东西。我的最终目标是在处理器中提取文件,因为路由交换是存档文件。

4

2 回答 2

11

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

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

String text = exchange.getIn().getBody(String.class);
byte[] bytes = exchange.getIn().getBody(byte[].class);
InputStream is = exchange.getIn().getBody(InputStream.class); 
于 2015-08-03T07:36:11.047 回答
1

对于那些有from("file:...")以下作品的人:

File in = exchange.getIn().getBody(File.class);
于 2018-11-15T16:40:44.973 回答