VFS将文件写入不存在的文件夹

时间:2012-09-25 10:10:53

标签: wso2 wso2esb vfs apache-commons-vfs

我用vfs写一个文件到一个不存在的文件夹。我期待这个文件夹的异常或创建。 但是没有一个发生,而是有一个用丢失的文件夹名称创建的文件(至少文件的内容是正确的)。

但是这种行为不是我想要的 - 应该创建一个丢失的文件夹或者应该抛出异常。 这是我将序列发送到FTP的示例:

<property name="OUT_ONLY" value="true"/>    
<property name="transport.vfs.ReplyFileName" value="filename.txt" scope="transport"/>
    <send>
       <endpoint>
          <address uri="vfs:ftp://USER:PASSWORD@SERVER/myFolder"/>
       </endpoint>
    </send>

当代理尝试写入文件并且文件夹“myFolder”不存在时,会在myFolder内部使用文件名“myFolder”而不是filename.txt写入正确内容的文件。

顺便说一下,问题也存在于本地文件(不是FTP特定的)

有没有人能解决这个问题?

1 个答案:

答案 0 :(得分:1)

据我所知,WSO2能够创建文件夹,但文件名将被搞砸,例如,使用这样的地址

<address uri="vfs:ftp://USER:PASSWORD@SERVER/myFolder1/myFolder2"/>

假设myFolder1和myFolder2不存在。将创建myFolder1,但myFolder2不会创建,文件名将更改为myFolder2,内容正确。

相反,您可以将文件夹名称添加到ReplyFileName属性,应该创建该文件夹没有问题。

 <property name="transport.vfs.ReplyFileName" value="myFolder/filename.txt" scope="transport"/>