2

我需要对外部系统进行一些 http post 调用。我有一个简单的问题,我想通过 post 发送一个 xml 文件,该文件不是有效负载本身,而只是其中的一部分。我可以使用 轻松检索它#[payload.getMyXmlPostMessage()],但是如何将此信息放在 http 组件上?我不想覆盖包含稍后将在流程中使用的其他信息的有效负载。

4

2 回答 2

4

在不更改有效负载的情况下调用外部服务的最佳方法可能是委托给单独的流。

您可以使用 VM 传输调用它,将交换模式设置为请求响应。

这样有效负载将被复制,您可以使用新流程进行您可能需要的所有更改,结果将存储在您在<enricher />

于 2013-09-02T19:11:54.773 回答
0

有不同的选项可以在不修改现有有效负载的情况下调用外部服务:-

  1. 将现有的有效负载保存在 Http 调用之前的变量中,然后在 Http 调用之后使用 set payload 从变量中设置有效负载

  2. 在流程中使用 Async 块并在此处使用 Http 调用外部服务。使用 Async 块将创建线程的副本,并且不会干扰当前的有效负载,因为它会得到一个副本。

  3. 当然,Enricher 组件就在那里,您可以在 Enricher 中使用您的 Http 组件并调用外部服务。如您所知,Enricher 不会干扰当前的有效载荷。
于 2015-08-05T12:41:54.270 回答