首页 > 解决方案 > 如何在骆驼投票丰富器中使用动态表达式

问题描述

我有以下使用 pollEnrich 和聚合器的场景。

 private static final String SOURCE_FILE_COMPONENT = "file:%s?fileName=$simple{exchangeProperty.fileName}.%s";

  from("direct:signatureVerificationRoute")
         .pollEnrich(String.format(SOURCE_FILE_COMPONENT, sourceLocation,signatureAlgorithm), new Aggregator())
         .to("direct:test");

在上面的代码中,我为 pollEnrich 构建了动态 uri,但它不起作用。

标签: javaspring-bootapache-camelspring-camelcamel-ftp

解决方案


您可以使用带有表达式的重载 pollEnrich。虽然您需要提供超时和聚合策略作为 bean ref,但它可能不适合。如果您提供 null 作为聚合策略 ref 它只使用最后的消息,所以文件的内容。

from("direct:signatureVerificationRoute")
        .pollEnrich(simple(String.format(SOURCE_FILE_COMPONENT, sourceLocation,signatureAlgorithm)), 2000, null, false)
        .to("direct:test");

推荐阅读