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

标签 apache-camel camel-ftp

在我的 Camel 路由器中:

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

最佳答案

从正文中获取文件。 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); 

关于apache-camel - 如何从 Camel FTP 路由交换中获取实际文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779575/

相关文章:

java - 当消息是 XML 格式时,如何在 Camel 选择组件中使用 simple ?

java - 使用 Apache Camel 访问正确的 URL 时出现响应代码 302

java - 访问camel路由中bean中设置的属性/值

apache-camel - 如何停止camel sftp消费者的JSCH日志

apache-camel - 具有 pollStrategy 的 Camel FTP 失败

java - Apache Camel - 将文件名从路由 1 传递到 FTP 的路由 2

java - Camel REST 服务在返回 null 时抛出异常

java - 使用外部 .cfg 文件而不是在构建时定义属性文件

java - 在开始路由之前交叉检查camel ftp/sftp身份验证

java - Apache camel - 将文件写入 ftp 失败