【问题标题】:How can I pass zip file to payload in Mule java transformer?如何将 zip 文件传递​​给 Mule java 转换器中的有效负载?
【发布时间】:2017-10-12 20:50:29
【问题描述】:

我正在使用 Anypoint Studio 6.2 和 Mule Runtime 3.8.3。

我想在 src/main/resources/input 文件夹中获取一个文件并将其压缩并保存到 src/main/resources/output,然后将消息负载替换为 zip 文件。

为此,我添加了一个 java 转换器,它引用了一个我称为 Zip 的 java 类,它压缩文件并将其保存到输出文件夹,但是如何将新创建的 zip 文件添加到消息的有效负载中?

Java Zip 类:

public class Zip extends AbstractMessageTransformer
{
    public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
        System.out.print("***java.utils.Zip started***");
        String sourceFile = "src/main/resources/input/log4j2.xml";
        FileInputStream fis = null;
        FileOutputStream fos = null;

        try {
            fos = new FileOutputStream("src/main/resources/output/log4j2.zip");
            ZipOutputStream zipOut = new ZipOutputStream(fos);
            File fileToZip = new File(sourceFile);
            fis = new FileInputStream(fileToZip);
            ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
            zipOut.putNextEntry(zipEntry);
            final byte[] bytes = new byte[1024];
            int length;
            while((length = fis.read(bytes)) >= 0) {
                zipOut.write(bytes, 0, length);
            }
            message.setPayload(????);
            zipOut.close();
            fis.close();
            fos.close();
        } catch (FileNotFoundException e) {
            //File not found
            e.printStackTrace();
        } catch (IOException e) {
            //IO Exception
            e.printStackTrace();
        }
        System.out.print("***java.utils.Zip completed***");  
        return message;
    }
}

谢谢

【问题讨论】:

    标签: java zip mule mule-component anypoint-studio


    【解决方案1】:

    message.setPayload('src/main/resources/output/log4j2.zip');

    现在,您将在有效负载中获得可参考的 zip 文件的位置。

    或者使用 zip 文件路径创建属性调用,并且可以在设置有效负载组件中使用。

    message.setProperty("test", "src/main/resources/output/log4j2.zip", PropertyScope.INVOCATION);

    在设置的有效负载中,这可以用作#[flowVars.test]

    【讨论】:

    • 我可以将文件物理添加到有效负载中还是可以只添加位置?谢谢
    • 添加位置 + zip 文件名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多