【问题标题】:How to pass json object as parameter to java method(supplied as a jar i ExecuteScript) from groovy in Nifi?如何从 Nifi 中的 groovy 将 json 对象作为参数传递给 java 方法(作为 jar i ExecuteScript 提供)?
【发布时间】:2018-06-15 22:24:25
【问题描述】:

我在流文件中得到一个 json 对象,我需要将它传递给一个以 json 对象作为参数的 java 方法。我通过在 ExecuteScript 处理器的模块目录属性中提供 java 方法 jar 来通过 groovy 脚本进行此调用。如果有人用 groovy 脚本帮助我,那就太好了。我通过执行脚本处理器浏览了食谱,它解释了几乎所有内容,如果您能提供帮助,请提前致谢

【问题讨论】:

标签: json groovy apache-nifi


【解决方案1】:

读取流内容的最简单的 groovy 将如下所示:

def ff = session.get()
if(!ff) return

def text = session.read(ff).withStream{ it.getText("UTF-8") }
//do here something with text...
session.transfer(ff, REL_SUCCESS)

【讨论】:

    【解决方案2】:

    您尝试调用的方法签名是什么?根据 daggett 的回答,您可以将流文件(可能是 JSON 对象?)的文本内容存储到一个变量中,然后创建一个 JsonSlurper 将文本读入一个对象并将其传递给您的方法。对象是一个POJO,由与JSON对象对应的数组、映射等组成。如果您的方法采用字符串并解析对象本身,那么您将不需要 JsonSlurper,只需将包含流文件内容的字符串传递给您的方法。

    【讨论】:

    • 如果我的 java 方法采用包含流文件内容的字符串,那么 groovy 脚本应该是什么? @mattyb
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2018-12-27
    • 1970-01-01
    • 2013-02-20
    相关资源
    最近更新 更多