2017-01-02 2 views
2

FTPメッセージソースからファイルを読み込んで、そのままチャネルにメッセージ<を送信することはできますか?>メッセージペイロードとしてのファイル内容とヘッダ内のファイル名?どうすればいい?Spring統合の方法FTPメッセージソース生成メッセージ<String>チャンネルに直接ファイルを作成しないでください

今は、FTPソースからディスクにファイルを書き込んでいますが、これはやりたくありません。私はその後、ディスクを読んでからメッセージに変換したり、ある種のファイルソースを書き込んだりする必要があります。私はそれをFTPソースから直接チャネルにメッセージ<String>として直接送りたいと思っています。

状況を説明するために、複数のFTPソースをすべて1つのフローとしてチャネルにポーリングしています。その後、そのチャネルのすべてのメッセージをJdbcOutboundGatewayに移動して、メッセージを別のフローのDBテーブルに書き込むことを望みます。ただし、FTPソースからチャネルに入ると、メッセージのペイロードはファイルパスになります。 FTPメッセージソースにファイルを作成せず、メッセージ<文字列>とチャンネルに配置します。

答えて

3

FTP Streaming Inbound Channel Adapterの文書をチェックしましたか?

ストリーミング受信チャネルアダプタは、バージョン4.3で導入されました。 このアダプタは、InputStream、 のペイロードを持つメッセージを生成し、ローカルファイルシステムに書き込まずにファイルをフェッチできます。

これはまさにあなたが望むものだと思います。あなたのチャンネルにはMessage<InputStream>がありますが、StreamTransformerなどのメッセージトランスフォーマーを使用して、これらのメッセージを常にMessage<String>に変換できます。

関連する問題