将流从java发送到apache nifi处理器

将流从java发送到apache nifi处理器,java,apache-nifi,Java,Apache Nifi,大家早上好 因此,我有一段java代码,它可以解析为swagger文档文件(一个JSON文件),并将其拆分为: { Swagger swagger = new SwaggerParser().read("C:/Users/admin/Desktop/testdownload.txt"); Map<String, Path> paths = swagger.getPaths(); for (Map.Entry<String, Path> p : paths.entr

大家早上好 因此,我有一段java代码,它可以解析为swagger文档文件(一个JSON文件),并将其拆分为:

{ Swagger swagger = new SwaggerParser().read("C:/Users/admin/Desktop/testdownload.txt");
  Map<String, Path> paths = swagger.getPaths();
  for (Map.Entry<String, Path> p : paths.entrySet()) {
    Path path = p.getValue();
    Map<HttpMethod, Operation> operations = path.getOperationMap();
    for (java.util.Map.Entry<HttpMethod, Operation> o : operations.entrySet()) {
      System.out.println("===");
      System.out.println("PATH:" + p.getKey());
      System.out.println("Http method:" + o.getKey());
      System.out.println("Summary:" + o.getValue().getSummary());
      System.out.println("Parameters number: " + o.getValue().getParameters().size());
      for (Parameter parameter : o.getValue().getParameters()) {
        System.out.println(" - " + parameter.getName());
      }
      System.out.println("Responses:");
      for (Map.Entry<String, Response> r : o.getValue().getResponses().entrySet()) {
        System.out.println(" - " + r.getKey() + ": " + r.getValue().getDescription());
      }
      System.out.println("");
    }

  }
}
{Swagger-Swagger=new-SwaggerParser().read(“C:/Users/admin/Desktop/testdownload.txt”);
Map path=swagger.getpath();
对于(Map.Entry p:path.entrySet()){
路径路径=p.getValue();
映射操作=path.getOperationMap();
for(java.util.Map.Entry o:operations.entrySet()){
System.out.println(“=”);
System.out.println(“路径:+p.getKey());
System.out.println(“Http方法:+o.getKey());
System.out.println(“摘要:+o.getValue().getSummary());
System.out.println(“参数编号:+o.getValue().getParameters().size());
对于(参数:o.getValue().getParameters()){
System.out.println(“-”+参数.getName());
}
System.out.println(“响应:”);
对于(Map.Entry r:o.getValue().getResponses().entrySet()){
System.out.println(“-”+r.getKey()+”:“+r.getValue().getDescription());
}
System.out.println(“”);
}
}
}
以下是输入: 输出为:

我想问的是:是否可以将此输出一个路径一个路径地发送到ApacheNIFI??
是否有任何解决方案可以让Nifi提取这些输出并将它们分别放在一个相关处理器中???

您可以在Nifi中启动HTTP lister服务。使用

不久前,我做过类似的事情。从Java应用程序向这个HandleHttpRequest发送数据。此处理器设计用于与HandleHttpResponse处理器结合使用,以创建Web服务

您只需将数据发布到此Web服务,Web服务就可以使用它,并且您的数据已经存在于NiFi中。从那时起,您可以随心所欲地操纵和控制数据


你也可以调查一下

我没有立即的答案,但有一些想法。。。1) NiFi允许您用Java编写自定义处理器。。。您可以编写一些Java代码,接受原始输入(txt),并为每个路径条目编写一个新的FlowFlile。2) 您可能会发现一个JSON提取器,它可以将JSON拆分为一个路径数组并处理该数组,而不是一开始就转换为文本格式。调用nifi api来创建处理器而不是打印输出非常感谢!它真的有效!我有一个问题:我们可以用InvokeHttp来代替吗?是的。我更喜欢HandleHttpRequest,但您更了解您的用例。InvokeHttp还可用于调用您的swagger端点并询问信息。只需将“始终输出响应”设置为TRUE。祝你好运!问题是,我需要一个执行API的处理器:也就是说,我目前需要做一个POST,以便对我正在使用的服务器进行身份验证。然后我需要能够从执行的POST的响应中获取返回的数据。关于使用什么处理器有什么建议吗?您应该能够使用带有“发送消息正文”的InvokeHTTP,对吗?您是否遇到了错误,或者有什么问题无法解决?