2013-10-23 72 views
0

我对使用WSO2 ESB和VFS传输传输大型文件有疑问。我已经建立了一个从FTP位置读取文件的代理。这个文件应该通过WSO2进行流式处理,并写入到一个目标位置。为了激活流式传输,我在发送端设置了transport.vfs.Streaming参数为“true”,并在接收端声明了相应的属性。使用WSO2 VFS传输流式传输大文件

<proxy xmlns="http://ws.apache.org/ns/synapse" name="LargeFileTestProxy" transports="vfs" startOnLoad="true" trace="disable"> 
<target> 
    <inSequence> 
     <property xmlns:ns2="http://org.apache.synapse/xsd" name="transport.vfs.ReplyFileName" expression="fn:concat(fn:substring-after(get-property('MessageID'), 'urn:uuid:'), '.xml')" scope="transport" type="STRING"/> 
     <property name="transport.vfs.Streaming" value="true" scope="transport" type="STRING"/> 
     <property name="transport.vfs.Append" value="true" scope="transport" type="STRING"/> 
     <property name="OUT_ONLY" value="true" scope="default" type="STRING"/> 
     <send> 
      <endpoint> 
       <address uri="vfs:file:///poc/services/inbound"/> 
      </endpoint> 
     </send> 
    </inSequence> 
    <outSequence/> 
    <faultSequence/> 
</target> 
<parameter name="transport.vfs.Streaming">true</parameter> 
<parameter name="transport.PollInterval">1</parameter> 
<parameter name="transport.vfs.FileURI">vfs:ftp://admin:[email protected]</parameter> 
<parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter> 
<parameter name="transport.vfs.ContentType">application/xml</parameter> 

所传送的文件被部分写入到目标目录并且通过WSO2生成一个锁定文件。不幸的是,读文件的其余部分没有附加到文件中。

有人知道我的配置有什么问题吗?

此致

的Heiko

回答

0

需要设置transport.vfs.Append = true参数与文件地址的URI,以便附加到输出文件[1]。

<address uri="vfs:file:///poc/services/inbound?transport.vfs.Append=true"/> 

将它配置为VFS属性时不起作用。

[1] http://docs.wso2.org/display/ESB450/VFS+Transport

+1

感谢回复。我已经按照建议调整了地址端点URI。现在该文件被写入名称为“inbound?transport.vfs.Append = true”的目录服务。似乎并没有像预期的那样通过WSO2/VFS评估URI ... – Heiko