可以将字节数组传递给mule ESB中的出站文件传输

时间:2016-06-13 20:52:03

标签: java mule

我有一个java组件,它正在压缩csv文件并从ByteArrayOutputStream返回一个字节数组。我试图将其传递给文件传输以写入操作系统。文件被写入操作系统,但Windows在我尝试打开文件时报告该文件无效。首先,是否可以将字节数组发送到文件传输?如果是这样,那么我想我可能不得不发布另一个关于我做错了什么的问题压缩csv的内容......

这是java的一个片段:

    List<String> csvFiles = (List<String>)message.getPayload();

    InputStream originalFile = null;
    ByteArrayOutputStream dest = new ByteArrayOutputStream();
    ZipOutputStream out = new ZipOutputStream(dest); 

    File temp = new File("users.csv");
     originalFile = new 
       ByteArrayInputStream((csvFiles.get(0)).toString().getBytes());
     ZipEntry entry = new ZipEntry(temp.getPath());
     out.putNextEntry(entry);
     int count;
     while((count = originalFile.read()) != -1) {
        out.write(count);
     }
     originalFile.close();
     byte[] zipFileByteArray = dest.toByteArray();
     out.close();
     dest.close();
    return zipFileByteArray;

这是我流程的相关部分:

 <flow name="zip-csv">
    <component class="edu.ucdavis.iet.canvas.ZipFiles" doc:name="Java"/>
    <file:outbound-endpoint path="${message_archive.dir}" responseTimeout="10000" doc:name="save message to dir" outputPattern="temp.zip"/>
 </flow>

1 个答案:

答案 0 :(得分:0)

我建议使用提交此问题的ZipTransformer类@anupambhusari:

  

Mule Zip File and send zipped file towards FTP server