如何在mule中将请求的各个部分回显到响应中

如何在mule中将请求的各个部分回显到响应中,mule,Mule,上下文: 我有一个基于XML的API。我使用这个API获取请求。然后我有一些转换器,可以将这些请求转换为第三方特定的API。然后,我使用转换后的对象进行web服务调用,得到一些响应,并将其转换回API对象 有一句话是这样的: MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES MY_API_REQ -> Store parts -> 3RD_PARTY_AP

上下文: 我有一个基于XML的API。我使用这个API获取请求。然后我有一些转换器,可以将这些请求转换为第三方特定的API。然后,我使用转换后的对象进行web服务调用,得到一些响应,并将其转换回API对象

有一句话是这样的:

MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES
MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts
非常简单

问题: 现在,我想在我的回复中回复我请求的一些部分

假设我的请求API有一个Echo组件,它也必须出现在响应中。在我看来,最简单的解决方案是,在将请求转换为第三方API之前,我将此Echo组件存储在某个地方(例如:会话范围内的头属性)。然后在响应分支上检索这个Echo组件,并将其设置在响应对象上

有一句话是这样的:

MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES
MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts
问题:此解决方案不会让我觉得我在使用最好的解决方案。部分原因我担心在流的执行过程中会有我不知道的复制机制,这让我担心性能

我正在同步地做这一切,所以我应该一直在同一条线上,所以也许我的担心没有任何根据。然而,在做一些性能测试或分析之前,我想问你们一些关于这方面的问题

懒惰是健康的一半
提前感谢:有两种不同的方法(您使用的是第一种):

  • 将要保留的信息存储在属性中,并让出站交互使用其响应替换有效负载,然后从属性中检索保存的信息。如果不需要在流之间共享存储的信息,则使用流变量而不是会话属性更为可取
  • 将原始有效负载转换为预期响应,传播此“echo”值,并使用消息充实器与出站服务交互。如果出站交互真的是为了丰富响应,那么这在语义上就更清楚了

我被你提到的“回声组件”弄糊涂了:你是指Mule的
?不,例如:。。。然后响应将包含相同的部分。现在更容易理解了吗?对不起,如果我第一次没说清楚的话。