java - 如何在骆驼投票丰富器中使用动态表达式
问题描述
我有以下使用 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,但它不起作用。
解决方案
您可以使用带有表达式的重载 pollEnrich。虽然您需要提供超时和聚合策略作为 bean ref,但它可能不适合。如果您提供 null 作为聚合策略 ref 它只使用最后的消息,所以文件的内容。
from("direct:signatureVerificationRoute")
.pollEnrich(simple(String.format(SOURCE_FILE_COMPONENT, sourceLocation,signatureAlgorithm)), 2000, null, false)
.to("direct:test");