背景
この例題は、ESB SFTPトランスポートを使って、SFTPサービスからファイル・メッセージを送受信します。コンソールから入力された文字列を受け取り、文字列をファイルとしてSFTPサービスに送信します。その後に、SFTPサービスから送り戻された同じ内容のファイルを受け取り、コンソールに出力します。
SFTPコネクタ例題の実行
 | 進む前に、[SFTPトランスポートをインストール]してください。 |
バイナリからインストールされた場合は、この例題はSFTPトランスポートZipディレクトリ下の「examples」にあります。ソースコードからビルドした場合は、Subversionワークスペースを作成された下の「examples」ディレクトリにあります。
1.テキスト・エディタからファイルconf/mule-sftp-examples-config.xmlを開きます。sftpエンドポイントURIをSFTPサービスのURIに修正します(2箇所あります)。この例題では、受信(inbound)と送信(outbound)sftpエンドポイントを同じディレクトリに設定します。
<endpoint address="sftp: connector="sftpConnector" />
 | Unix/Linux sftpサービスの場合は、/path/to/dirは絶対アドレスと認識されます。FreeSSHd on Windowsを使って全ユーザのベースアドレスを指定して、/path/to/dirを相対アドレスと認識させることができます。。 | |
 | 指定したユーザが、指定されたディレクトリの権限があるか確認してください。 |
3.ステップ1で修正した設定ファイルを使ってESB Mule 1.3.3を起動します
sftp.bat (Windows) 又は sftp.sh (Linux/Unix)
4. ESB Muleが立ち上がると、以下のようなメッセージが出力されます:
**********************************************************************
* Mule ESB and Integration Platform version Not Set *
* Not Set *
* For more information go to http://mule.mulesource.org *
* *
* Server started: Monday, March 19, 2007 1:17:21 AM PDT *
* Server ID: SFTP_TEST *
* JDK: 1.5.0_11 (mixed mode) *
* OS: Windows XP - Service Pack 2 (5.1, x86) *
* Host: QMULE (192.168.1.101) *
* *
* Agents Running: *
* Mule Admin: accepting connections on tcp://localhost:60504 *
**********************************************************************
INFO 2007-03-19 01:17:22,734 [WrapperSimpleAppMain] org.mule.MuleServer: Mule S
erver initialized.
=====SFTP Demo. Enter file contents to be routed to SFTP service .=====
5.上のように表示されるコンソールで、テキストを入力すると、ESB Muleはテキストをファイル・メッセージとしてステップ1で指定したSFTPサービスに送ります。ESB Muleは次のようなメッセージを表示します(読みやすくするために改行を挿入):
=====SFTP Demo. Enter file contents to be routed to SFTP service .=====
This is a mule message
INFO 2007-03-19 01:52:18,078 [SystemStreamConnector.endpoint.stream.System.in.r
eceiver.1] org.mule.providers.sftp.SftpMessageDispatcher: Successfully connected t
o: sftp://mule:test123@localhost/files/sftp-target
INFO 2007-03-19 01:52:18,078 [SystemStreamConnector.endpoint.stream.System.in.r
eceiver.1] org.mule.providers.sftp.SftpMessageDispatcher: Writing file to: sftp://
mule:test123@localhost/files/sftp-target/
上のINFOログは、ESB Muleが sftp://mule:test123@localhost/files/sftp-target に接続して、書き込んだことを通達します。
6.VFSコネクタはSFTPからファイルを取得するのに、PollingMessageReceiverを使います。この例では10秒毎にポールするように設定したために、10秒以内に以下のようなメッセージが表示するはずです(読みやすくするために改行を挿入しました):
INFO 2007-03-19 01:52:21,187 \[sftpConnector.endpoint.sftp.mule.test123.localhos
t.files.sftp.source.receiver.1\] org.mule.providers.stream.StreamMessageDispatche
r: Successfully connected to: stream://System.out
This is a mule message
ステップ5で入力したテキストが表示されるはずです。
 | この例題では「InputStreamToByteArray」トランスフォーマを使いました(mule-sftp-examples-config.xmlを参照)。もし大きなファイルを処理する場合は、このトランスフォーマを使わず、自分でストリームを処理するサービス・コンポーネントを作成するか、ストリーミング・メッセージ・ディスパッチャを作成します。詳細に付いては[SFTPユーザ・ガイド]を参照してください。 |