65.3. Unmarshal


この例では、MY_QUEUE という ActiveMQ キューから元の形式に Zip ファイルペイロードをアンマーシャリングし、処理のために UnZippedMessageProcessor に転送します。

from("activemq:queue:MY_QUEUE")
    .unmarshal().zipFile()
    .process(new UnZippedMessageProcessor());
Copy to Clipboard Toggle word wrap

zip ファイルに複数のエントリーがある場合は、ZipFileDataFormat の usingIterator オプションが true であり、Splitter を使用してさらに作業を行うことができます。

ZipFileDataFormat zipFile = new ZipFileDataFormat();
zipFile.setUsingIterator(true);

from("file:src/test/resources/org/apache/camel/dataformat/zipfile/?delay=1000&noop=true")
    .unmarshal(zipFile)
    .split(body(Iterator.class)).streaming()
        .process(new UnZippedMessageProcessor())
    .end();
Copy to Clipboard Toggle word wrap

または、以下のように splitter の式として ZipSplitter を使用できます。

from("file:src/test/resources/org/apache/camel/dataformat/zipfile?delay=1000&noop=true")
    .split(new ZipSplitter()).streaming()
        .process(new UnZippedMessageProcessor())
    .end();
Copy to Clipboard Toggle word wrap

65.3.1. Aggregate

注記

この集約ストラテジーが適切に機能するには、Eager 補完チェックが必要です。

この例では、入力ディレクトリーにあるテキストファイルをすべて、出力ディレクトリーに保存されている単一の Zip ファイルに集約します。

from("file:input/directory?antInclude=*/.txt")
    .aggregate(constant(true), new ZipAggregationStrategy())
        .completionFromBatchConsumer().eagerCheckCompletion()
        .to("file:output/directory");
Copy to Clipboard Toggle word wrap

送信 CamelFileName メッセージヘッダーは、接尾辞 ".zip" で java.io.File.createTempFile を使用して作成されます。この動作を上書きする場合は、ルートに CamelFileName ヘッダーの値を明示的に設定できます。

from("file:input/directory?antInclude=*/.txt")
    .aggregate(constant(true), new ZipAggregationStrategy())
        .completionFromBatchConsumer().eagerCheckCompletion()
        .setHeader(Exchange.FILE_NAME, constant("reports.zip"))
        .to("file:output/directory");
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat