1

使用 xslt 转换文件后,我必须附加从 ftp 下载的文件。所以我做了以下事情:

    from("direct:adobe_productList_incremental")
            .id("routeADOBESPtransformPI_productList")
            .log(LoggingLevel.INFO, "---------Starting file: ${body}")
            .convertBodyTo(InputStream.class)
            .to("xslt:classpath:" + xsltTransformationProductList)
            .log(LoggingLevel.INFO, "---------Transformed file: ${body}")
          .pollEnrich(ftpType+"://"+ftpUsername+"@"+ ftpUrl +":" + ftpPort + ftpPath_incrementalComplete +"?password="+ftpPassword+"&fileName="+ftpFilename_incrementalComplete+"&passiveMode=true&binary=true&delete=false",10000)
            .log(LoggingLevel.INFO, "---------After poll enrich: ${body}")
            .to("file:{{file.root}}{{file.outbox.products_list_incremental}}?fileName={{file.outbox.products_list_incremental.name}}.final");

直到轮询一切正常(转换正确完成),但在 pollEnrich 之后,当前正文被 ftp 内容覆盖(而不是按应有的方式附加)。

有什么帮助吗?

4

1 回答 1

3

不,它按设计工作。

默认情况下,内容将被覆盖。如果您需要追加/合并或其他什么,您需要使用自定义聚合策略,并实现执行此操作的代码逻辑。

有关ExampleAggregationStrategy ,请参阅位于http://camel.apache.org/content-enricher.html的 Camel 文档。

骆驼文档说

聚合策略是可选的。如果您不提供它,Camel 默认将使用从资源中获取的主体。

于 2013-01-29T14:45:09.330 回答