1

我正在使用 WSO2 测试一些示例用例,其中 ESB 必须扫描 SFTP 文件夹并执行一些操作。这是我所做的:

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 中尝试过这个。我的用户名是amilaftp。所以我将属性定义如下。

<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 回答