是否可以从java应用程序调用apachenifilistenhttp处理器或handlehttprequest?另外,如何将自定义参数从java应用程序发送到listenhttp“remote url”属性?
如何通过javaapi设置处理器的属性?
如何通过url将参数传递给nifi处理器组?以及如何通过该url启动处理器组。
http://localhost:8080/api/firstname/{first_name}/lastname/{last_name}
我想把名字和姓氏从java应用程序发送到nifi处理器?如何做到这一点?
1条答案
按热度按时间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中提取这些值,因此您必须手动执行该逻辑。