java - Apache Camel 获取交换路径

标签 java file path apache-camel

我使用 apache Camel 来监控我的文件系统 我使用以下路线:

public class FsRouteBuilder extends RouteBuilder {

        @Override
        public void configure() throws Exception {
            while(true){
            FsProcessor processor = new FsProcessor();
            from("file:C:\\Users\\My_User_Name\\Documents\\TRAX_PAYMENTS\\KBC?noop=true&idempotent=false").process(processor);
        }
        }
    }

该路由调用以下处理器

public class FsProcessor implements Processor {
 public void process(Exchange exchange) throws Exception {}
}

现在我想做的是获取交换的路径。这是因为我想监视它并且路径是唯一的键。是否有属性或方法可以获取交换路径?

最佳答案

您可以从处理器获取文件路径,如图所示

public class FsProcessor implements Processor {
 public void process(Exchange exchange) throws Exception {
    File file = exchange.getIn().getBody(File.class);
    String path = file.getPath();
  }
}

它使用Camel的类型转换器,

因此,如果您希望文件的内容为 byte[] 或 String,您可以这样做

String data = exchange.getIn().getBody(String.class);

关于java - Apache Camel 获取交换路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340983/

相关文章:

c - 从环境 C 中的给定变量中删除值

c++ - 如何在Qt上获取当前路径

java - SWT CTab文件夹 : Add watermark (in case of no tabs)

java - 是否可以设置 Java CharBuffer 的位置?

java - 将 String 转换为 int

Perl 在 Windows 中使用外来字符

javascript - 可以在文档根目录之上引用 javascript 文件吗?

java - Realm - 如何构建具有多种类型对象的提要?

java - JSF validator 中的 NPE

php - 如何使用 Respect\Validation 库验证文件上传?