apachenifi:从java应用程序执行/触发nifi处理器

velaa5lx  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(614)

是否可以从java应用程序调用apachenifilistenhttp处理器或handlehttprequest?另外,如何将自定义参数从java应用程序发送到listenhttp“remote url”属性?

如何通过javaapi设置处理器的属性?
如何通过url将参数传递给nifi处理器组?以及如何通过该url启动处理器组。

http://localhost:8080/api/firstname/{first_name}/lastname/{last_name}

我想把名字和姓氏从java应用程序发送到nifi处理器?如何做到这一点?

p3rjfoxz

p3rjfoxz1#

这里有几个不同的问题。
如何与客户互动 ListenHTTP 或者 HandleHttpRequest 来自单独java应用程序的处理器使用java应用程序中的任何http客户机发送请求。这可以像使用 URLConnection 类或 HttpClient ,或使用类似apachehttp组件的库。
如何在来自java的http请求中发送自定义参数?-上面的链接描述了每种方法的这个过程。一般来说,在java代码中,您必须构造请求(或者通过将这些值附加到url以获取请求) GET 请求,或为 POST 请求)。
如何通过api设置nifi处理器的属性当从单独的java应用程序运行时,您将无法在nifi上调用java方法。您将需要使用nifirestapi来执行这些操作。有许多使用restapi的例子。nifiui也是一个参考实现,因此您可以使用浏览器的开发人员工具来观察和捕获您在ui中所做的任何操作,因为它直接调用api。
如何通过api启动处理器组?-上一个项目符号中的链接显示了通过api启动处理器的示例。这一过程与pg非常相似;只需通过uuid识别pg。
如何从java以指定的url格式发送名和姓其代码取决于现有的数据结构和连接方法。我还怀疑屏幕截图中显示的处理器配置是错误的 InvokeHTTP 处理器,而不是 ListenHTTP 基于可用属性的处理器。如果您想通过http将常规java应用程序中的数据发送到nifi,您可以配置 ListenHTTP 处理器侦听特定的端口和基本路径,然后建立到该地址的http连接。因此,例如,使用默认基本路径和端口8888,外部应用程序将向 http://localhost:8888/contentListener 带请求正文 {"firstname": "Andy", "lastname": "LoPresto"} 为了提供json。流文件内容将包含这些值。这个 ListenHTTP 处理器不提供任意的url解析来从querystring中提取这些值,因此您必须手动执行该逻辑。

相关问题