繁体   English   中英

是否可以将字节数组传递到m子ESB中的出站文件传输中

[英]Can a byte array be passed to an outbound file transport in mule ESB

我有一个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>

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

Mule Zip File并将压缩文件发送到FTP服务器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM