1

私は、ESB が SFTP フォルダーをスキャンしていくつかのアクションを実行する必要がある WSO2 でいくつかのサンプル ユース ケースをテストしています。これが私がしたことです:

1) axis2.xml で VFS トランスポート リスナーを有効にしました。

<transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
<transportSender name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportSender"/>

2)次のプロキシを挿入しました(明らかな理由で user:pass を変更しました):

<proxy xmlns="http://ws.apache.org/ns/synapse" name="SFTPVFSProxy" transports="vfs" statistics="disable" trace="enable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="full" />
      </inSequence>
   </target>
   <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
   <parameter name="transport.PollInterval">3</parameter>
   <parameter name="transport.vfs.MoveAfterProcess">vfs:sftp://user:pass@10.254.241.69:22/home/user/sftp/out</parameter>
   <parameter name="transport.vfs.FileURI">vfs:sftp://user:pass@10.254.241.69:22/home/user/sftp/in</parameter>
   <parameter name="transport.vfs.MoveAfterFailure">vfs:sftp://user:pass@10.254.241.69:22/home/user/sftp/out</parameter>
   <parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
   <parameter name="transport.vfs.ContentType">text/plain</parameter>
   <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
</proxy>

バージョン 4.5.0 と 4.5.1 の両方で、何もトリガーされません。プロキシが正常にデプロイされたことを示す情報以外、ログ ファイルに出力はありません。バージョン 3.0.1 でもまったく同じスクリプトが機能します。

さらに、「sftp」を「ftp」またはローカルファイルに変更すると、リスナーはv4.Xでも正常にトリガーされるため、おそらくsftp処理に固有のものであると思われます。

私は何か間違ったことをしていますか、それともソフトウェアにバグがありますか?

前もって感謝します、

ソドリス

4

1 に答える 1

1

問題は、transport.vfs.FileURI プロパティを定義した方法にあると思います。ユーザーのユーザー名が「user」であると仮定すると、sftp にログインすると、/home/user フォルダーに移動します。したがって、上記のプロパティを次のように定義してみてください。

<parameter name="transport.vfs.FileURI">vfs:sftp://user:pass@10.254.241.69:22/sftp/in</parameter>

また

<parameter name="transport.vfs.FileURI">vfs:sftp://user:pass@10.254.241.69:22/in</parameter>

あなたのフォルダ構造がわからないので、正確な設定は言えません。SFTPを使用してWSO2 ESB 4.0.3でこれを試しました。私のユーザー名は amilftp でした。そこで、プロパティを次のように定義しました。

<parameter name="transport.vfs.FileURI">vfs:sftp://amilaftp:password@localhost/in?vfs.passive=true</parameter>

FTP を試すときは、指定した構成で行ったようにフル パスを指定する必要があります。それが、WSO2 ESB 4.X の FTP で機能する理由です。これが 4.0.3 で機能する場合は、4.5.x でも機能するはずです。私にとってはうまくいったので、最初に 4.0.3 で試すことをお勧めします。

于 2012-10-27T15:23:10.187 に答える