首页 > 解决方案 > Apache Camel 验证文件名模式

问题描述

我想知道在使用文件时验证文件名的最佳方法是什么。我知道我可以使用排除模式,并且我已经看到我可以定义客户 GenericFileFilter。

但这些过滤器返回真或假。我更喜欢抛出异常。

所以我想知道使用bean还是自定义处理器更好?

谢谢

标签: javaapache-camel

解决方案


获取文件后,您可以调用一个处理器,您可以在其中从交换中提取文件名,使用exchange.getIn().getHeader("CamelFileName").toString(); 您可以执行任何您想要的验证并在那里抛出异常。

您可以在 bean 中执行相同的任务,只需将CamelFileName标头作为参数传递给 bean。

如果你不想调用处理器,你也可以在骆驼路线中做同样的事情。你可以做类似的事情

.choice()
    .when()
       .simple("${header.CamelFileName} == 'your condition'")
       .throwException(MyCustomException.class)
  .end()//ends the choice
  .continue_with_your_route

推荐阅读