WSO2通过代理Esb VFS

时间:2015-01-12 14:03:33

标签: wso2 wso2esb

我目前正在尝试设置一个在本地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>

由于

1 个答案:

答案 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配置中添加传输。