Apache camel 骆驼拆分器聚合器需要伪语句

Apache camel 骆驼拆分器聚合器需要伪语句,apache-camel,Apache Camel,在camel(2.14)中使用拆分/聚合器时,以下情况引发异常: @Override public void configure() throws Exception { from("timer://foo?repeatCount=1") .bean(someBean) .split(body(), new MyAgg()) .end() .bean(printBean); } Exception in thread "main" org.apac

在camel(2.14)中使用拆分/聚合器时,以下情况引发异常:

@Override
public void configure() throws Exception {
    from("timer://foo?repeatCount=1")
    .bean(someBean)
    .split(body(), new MyAgg())  
    .end()
    .bean(printBean);
} 

Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> Split[{body} -> []] <<< in route: Route(route1)[[From[timer://foo?repeatCount=1]] -> [Bean[org... because of Definition has no children on Split[{body} -> []]
someBean在交换中设置字符串列表。printBean在最后打印出交换。MyAgg追加来自Exchange的字符串


第二个选项中的log语句似乎是多余的。有没有办法让第一个选项起作用

这看起来像是过度工程。为什么要再次拆分和聚合字符串?如果MyAgg以某种方式更改了格式,只需合并someBean和MyAgg的功能,并在all@Sergey这是一个虚构的例子。我正在处理一个需要拆分/聚合的问题。我意识到我需要在split()和end()之间放置一条语句以使聚合工作。所以我举了一个小例子来说明这一点。我明白了。那么你就不必担心空的分离器体了。在现实生活中,您总是会有一个拆分器体(一些to()、process()等)。否则,根本不需要使用拆分器。拆分器需要有1个或多个输出。
@Override
public void configure() throws Exception {
    from("timer://foo?repeatCount=1")
        .bean(someBean)
        .split(body(), new MyAgg())  
        .log("blah blah")
        .end()
        .bean(printBean);
}