2016-08-16 5 views
0

私のプロキシで次のコードを使用してftpサーバーからファイルを読み込みます。システムはvfsから転送情報を推測することができません:sftp:// user:password @ sftpserverhost/in URL

<proxy name="SFTPVFSProxy" transports="vfs" startOnLoad="true" xmlns="http://ws.apache.org/ns/synapse"> 
     <target> 
      <inSequence> 

<send/> 
      </inSequence> 
     </target> 
     <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter> 
     <parameter name="transport.PollInterval">15</parameter> 
     <parameter name="transport.vfs.MoveAfterProcess">vfs:sftp://username:[email protected]/outbox</parameter> 
     <parameter name="transport.vfs.FileURI">vfs:sftp://username:[email protected]/inbox</parameter> 
     <parameter name="transport.vfs.MoveAfterFailure">vfs:sftp://username:[email protected]/sent</parameter> 
     <parameter name="transport.vfs.FileNamePattern">.*.txt</parameter> 
     <parameter name="transport.vfs.ContentType">application/xml</parameter> 
     <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter> 
</proxy> 

しかし、私は上記を実行したときに下にエラーが発生しています。 VFS転送はaxis2.xmlで行われ、vfs転送はwso2 esb 4.9.0管理コンソールで確認できます。

システムは、VFSから交通情報を推測することはできません:SFTP://ユーザー:パスワード@のsftpserverhost/URLで

答えて

0

SFTPサーバとの通信にSSHプロトコルを使用していますので、常にユーザのホームディレクトリにログインユーザーのホームディレクトリを基準にしてパスを取得します。 WSO2 VFSトランスポートURIに「sftpPathFromRoot」を追加すると、以下のように絶対パスアクセスを取得できます。
<parameter name="transport.vfs.FileURI">sftp://[ username[: password]@] hostname[: port][ absolute-path]?sftpPathFromRoot=true</parameter>
または、シンボリックリンクを使用することもできます。詳細はhereを参照してください。

+0

私はこの例をWSO2 ESB 4.9.0で試しています。 SFTPを使用して接続できるように見えますが、ファイルを失敗ディレクトリMoveAfterProcess =/opt/X、MoveAfterFailure =/opt/yに移動しているようです。私の場合は常にプロキシでファイルを失敗フォルダとログファイルのメッセージにプッシュするINFO - [JSCH] Socketがクローズされたためにメインループを残して例外が発生しました – storia321

関連する問題