使用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内容覆盖(并没有按原样附加)。
任何帮助?
答案 0 :(得分:3)
不是按设计工作。
默认情况下,内容将被覆盖。如果您需要追加/合并或其他什么,您需要使用自定义聚合策略,并实现执行此操作的代码逻辑。
有关ExampleAggregationStrategy的信息,请参阅:http://camel.apache.org/content-enricher.html的Camel文档。
Camel文档说
聚合策略是可选的。如果你不提供它 默认情况下,Camel只使用从资源中获取的主体。