我目前正在尝试设置一个在本地ftp服务器上运行正常的vfs代理。问题是我们公司的互联网访问被代理阻止,所以我正在搜索如何指定这个代理信息。据我所知,JSCH在底层使用,但我还没有找到传递代理参数的方法。
这是我当前的代理xml:
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="ftpCollection" statistics="disable" trace="disable" transports="vfs">
<target>
<inSequence>
<clone>
<target sequence="processSeq"/>
</clone>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.vfs.ReplyFileURI">vfs:sftp://user:pw@192.168.2.99:22/reply</parameter>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.FileProcessInterval">100</parameter>
<parameter name="transport.vfs.FileURI">vfs:sftp://user:pw@192.168.2.99:22/process/</parameter>
<parameter name="transport.vfs.MoveAfterProcess">vfs:sftp://user:pw@192.168.2.99:22/success/</parameter>
<parameter name="transport.vfs.MoveAfterFailure">vfs:sftp://user:pw@192.168.2.99:22/failure/</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
<parameter name="transport.vfs.Locking">disable</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.MoveTimestampFormat">yyyy-MM-dd'T'HH:mm:ss.SSS</parameter>
</proxy>
由于
答案 0 :(得分:0)
通过代理的SFTP(SSH)可以在HTTP tunnel上运行。 You can do that with JSch described on this page.
现在,WSO2中的VFS传输(最终使用JSch)已经没有HTTP隧道的实现。 因此您无法使用简单的VFS WSO2 ProxyService来执行此操作。
您可以通过实施自己的wso2esb传输侦听器来解决此问题。看看VFSTransportListener.java的代码(或者只是复制/粘贴),并通过http自己编写JSch访问代码。然后,您可以在wso2esb的axis2.xml配置中添加传输。