如何使用Mule 4

问题描述

我正在尝试在Java类中修改有效负载(Excel文件)。我的要求是从该Java类调用多个外部服务,DB等,并用数据丰富有效负载。我能够在Java方法中获得有效负载和变量。我无法修改有效负载。我尝试将有效负载转换为byte [],但尚未成功。 有什么方法可以从有效负载访问文件的内容并在Java中对其进行修改?

这是我的流程

<flow name="sftp-destination-Flow" doc:id="3d106103-4c59-49f6-a503-5553a23fd7c1">
    <set-variable value="#[attributes.fileName]" doc:name="FileName-Variable" doc:id="774b0e76-5407-42ce-a893-251dbb844630" variableName="fileName" />
    <set-variable value="${destination.folder}" doc:name="Folder-Variable" doc:id="cf45a917-456a-49b4-837b-15a1da0c2eb5" variableName="Folder" />
    <set-variable value="${destination.file.pad.timestamp}" doc:name="FolderPadTimeStamp-Variable" doc:id="855b9d92-cde9-4431-8c67-bbaa274a9fce" variableName="FilePadTimeStamp" />
    <java:invoke doc:name="File modification after encryption" doc:id="3e94f1e1-d878-447e-9289-1e4b43c7cd9a" instance="fileManager" class="com.company.FileManager" method="modifyMessage(Message,Map)">
        <java:args><![CDATA[#[{arg0 : message,arg1 : vars}]]]></java:args>
    </java:invoke>
</flow>

这是Java代码:

public Object modifyMessage(Message message,Map<String,TypedValue<String>> vars) throws MessageTransformerException {
    byte[] fileContent = {};
    String archieveFilePath = "";
    
    TypedValue<Object> payload = message.getPayload();

    try {
        String fileName = vars.get("fileName").getValue();
        String dir = vars.get("Folder").getValue(); 
        String timestamp = vars.get("FilePadTimeStamp").getValue();
        // TODO Get data from web services and DB
        if (StringUtils.isNotBlank(dir)) {
            // TODO convert the payload into byte array and modify
        }
    } catch (Exception te) {
        logger.error("Exception caught during file modification operation: " + te.getMessage());
    }
    return payload;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...