如何使用 JAVA 库将 YAML 文件用作 DataWeave 的输入?

How can I use YAML files as input to DataWeave using JAVA library?

我在 Java 中使用 dataweave 库时遇到问题。 我有一个 DW 脚本,我需要接收一个有效负载文件(如 application/json)和另一个参数(如 application/yaml),如下例所示:

%dw 2.0
input payload application/json
input parameters application/yaml
output application/json
---
{ input1: payload, input2: parameters }

playground 中的两个输入文件的脚本运行正常,但是当我尝试使用 Java 库执行此操作时。它是这样的:

        final ScriptingBindings bindings = new ScriptingBindings()
                .addBinding("payload", input1, "application/json", new HashMap<>())
                .addBinding("parameter", input2, "application/yaml", new HashMap<>());

        var result = compiledExpression.write(bindings);

它不起作用,并且在错误中似乎不支持 application/yaml 但在文档中它说是并且在操场上它也没有出现问题。这条消息是真的还是我滥用了图书馆?

Unknown content type `application/yaml`. Supported content types are: `application/dw`, `application/json`, `application/xml`, `application/csv`, `application/octet-stream`, `text/plain`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/x-java-properties`, `application/java`

您需要将 yaml-module 添加到您项目中的依赖项中,然后您就可以使用它了。