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 に答える