2013-10-23 119 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