在Ballerina Integrator中将JSON转换为XML并上传至FTP的问题

时间:2019-12-09 06:58:36

标签: ftp wso2 wso2ei ballerina integrator

我正在尝试在Ballerina集成商教程中给出的示例,同时将json运行到xml,然后上传到面对该问题的ftp示例中:

error org.wso2.ei.b7a.ftp.core.util.BallerinaFTPException.

我知道此问题的原因,但不知道该在哪里放置该命令。请帮助我解决问题。

该问题的原因是:conf文件中提到了ftp凭据,我将conf文件放在根目录下,但未引用。需要给

b7a.config.file=src/upload_to_ftp/resources/ballerina.conf

但是我不知道该在哪里送?

谢谢。

2 个答案:

答案 0 :(得分:1)

运行生成的jar文件时,可以添加-b7a.config.file。

官方文档: https://ei.docs.wso2.com/en/latest/ballerina-integrator/develop/running-on-jvm/

但是,应将ballerina.conf文件保留在根目录中。芭蕾舞女演员在运行时会自动寻找conf文件。确保conf文件在src目录之外。


对于您提到的错误,是否可以添加日志以查看json是否已正确转换为xml?由于代码以检查转换是否发生的方式构造,因此应打印xml

if (employee is xml) {
            var ftpResult = ftp->put(remoteLocation, employee);
            if (ftpResult is error) {
                log:printError("Error", ftpResult);
                response.setJsonPayload({Message: "Error occurred uploading file to FTP.", Resason: ftpResult.reason()});
            } else {
                response.setJsonPayload({Message: "Employee records uploaded successfully."});
            }
        } else {
            response.setJsonPayload({Message: "Error occurred tranforming json to xml.", Resason: employee.reason()});
        }

if( employee is xml )部分将检查转换是否成功。

将文件发送到服务器后也是如此。如果尚未发送文件,则ftpResult将是错误的。基本上,如果收到消息{ Message : "Employee records uploaded successfully" },则所有检查都应该通过。

答案 1 :(得分:0)

我已将凭据直接传递给ftpConfig,然后它可以正常工作。发生转换,转换后的文件已成功上传到ftp位置

ftp:ClientEndpointConfig ftpConfig = { protocol: ftp:SFTP, host: "corpsftp.dfaDFDA.com", port: 22, secureSocket: { basicAuth: { username: "DDFDS", password: "FADFHYFGJ" } } };

输出 { “消息”:“员工记录成功上传。” }

enter image description here