Apache Camel 使用新行标记进行拆分并使用聚合策略

问题描述 投票:0回答:1

我有以下路线:

from("file:/home/tmp/test?move=.done")
    .routeId("file")
    .split(body().tokenize("\n"),new GroupedBodyAggregationStrategy())
    .process(new Processor() {
      @Override
      public void process(Exchange exchange) throws Exception {
        exchange.getMessage().setHeader("Test", "test");
        System.out.println(exchange.getIn().getBody());
      }
  })

正在使用的文件是:

1234,56676,2345
234,213,412
124,423,5236

我希望在分割后只有一个交换到达处理器,并且其主体包含上述所有行,但是它的行为就像我根本不使用聚合策略一样。 3 个交换到达处理器,每个交换的主体对应于一条线路。另外,我使用 GroupedBodyAggregationStrategy 还是自定义策略并不重要,它总是相同的。我做错了什么?

file split apache-camel aggregation tokenize
1个回答
1
投票

在这里查看在此处输入链接描述

你看到的是:

from("file:/home/tmp/test?move=.done")
.routeId("file")
.split(body().tokenize("\n"),new GroupedBodyAggregationStrategy())
  // instructions on each message from the split (.ie each row here)
.end()
  // instructions on aggregated result
.process(new Processor() {
  @Override
  public void process(Exchange exchange) throws Exception {
    exchange.getMessage().setHeader("Test", "test");
    System.out.println(exchange.getIn().getBody());
  }
})
© www.soinside.com 2019 - 2024. All rights reserved.