Cod*_*ice 2 soap soapui apache-nifi
我看到其他人已经能够让它发挥作用,但是我无法找到足够的细节来解释他们是如何做到这一点的,以使我能够做到这一点。
这家伙在这个环节声称他能够做到这一点。虽然有关于如何做到这一点的简短描述,但我并不完全理解。
提出的解决方案是:
使用 InvokeHTTP,您可以添加动态属性,这些属性将在请求中作为标头发送。您可以使用动态属性来设置 Content-Type 和 SOAPAction 标头的值,只需使用标头名称作为动态属性的名称。InvokeHTTP 允许您控制 HTTP 方法,因此您可以将其设置为 POST。剩下的步骤是将 request.xml 的内容作为流文件发送到 InvokeHTTP。一种方法是使用 GetFile 处理器从文件系统上的某个位置获取 requeset.xml,并将 GetFile 的成功关系传递给 InvokeHTTP
——杰夫。
我正在使用 SOAPUI 来验证一切是否正常,并且在我获得适当的 XML 响应时也能正常工作。但是我无法在 NiFi 中完成此操作。我的猜测是我不知道如何称呼我的动态属性。我也不完全明白我要添加到Value我的动态属性中的数据。
我在这里缺少的关键是需要将 xml SOAP 请求作为流文件内容而不是流文件属性发送。我花了一段时间才知道如何使用自定义内容创建流文件。
使用InvokeHTTP处理器发出 SOAP 请求的关键是要求 InvokeHTTP 处理器接收 xml SOAP 请求作为流文件,因为当处理器发送 http POST 请求时,它发送它的属性作为SOAP 请求和传入的 Flow File 内容作为 SOAP Body。这需要一段时间来理解,然后才弄清楚如何自定义流文件的内容。
我最初的错误是我试图GenerateFlowFile单独使用处理器并将其直接发送到 InvokeHTTP 处理器。这对我不起作用,因为我不知道如何将我放置到 GenerateFlowFile 动态属性中的“文本”转换为内容。
最后,一个人在这里向我提供了有关如何通过使用ReplaceText处理器将我在GenerateFlowFile处理器中创建的属性转换为流文件内容来创建具有自定义内容的流文件的信息。
最后,我获得了 InvokeHTTP 处理器发送/POST SOAP 请求所需的正确格式的流文件。
流程截图:
GenerateFlowFile 和 ReplaceText 处理器的属性:
最后,我们只需要向InvokeHTTP处理器添加一些动态属性,并将其与传入的流文件一起作为 HTTP POST 请求提交。同样,属性作为标题发送,传入的流文件内容作为正文发送。这需要一点时间来理解,但是一旦您将各个部分放在一起并正确设置,就很容易了。
| 归档时间: |
|
| 查看次数: |
5669 次 |
| 最近记录: |