首页 > 解决方案 > 在 Ballerina Integrator 中 JSON 到 XML 和上传到 FTP 的问题

问题描述

我正在尝试 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

但我不知道我必须在哪里给这个?

提前致谢。

标签: ftpwso2wso2eiballerinaintegrator

解决方案


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

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

但是,将 ballerina.conf 文件保存在根目录中应该可以。Ballerina 在运行时会自动查找 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" }那么所有检查都应该通过。


推荐阅读