0

我注意到,如果我有这样的流动模式:

<flow name="httpIn">
    <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:9001/test/in" />
    <logger level="INFO" />
    <http:outbound-endpoint exchange-pattern="request-response" address="http://localhost:9001/test/out" />
    <logger level="INFO" />
</flow>

outbound-endpoint调用withrequest-response交换模式后,原始 HTTP 请求的入站属性会丢失。

这是正常行为吗?有没有办法为所有出站端点禁用此功能,或者此端点是特定的?

4

3 回答 3

2

是的,这是正常行为。这里解释得很好:

http://blogs.mulesoft.org/mule-school-the-mulemessage-property-scopes-and-variables/

骡入站属性

您无法设置入站属性。消息源(例如入站端点)在收到消息时为您设置它们。越过“运输障碍” Mule Outbound Properties 时,入站属性会丢失

出站属性可以由您设置。越过“交通障碍”时,出境物业会自动变成入境物业,不再作为出境物业存在。- 查看更多信息:http: //blogs.mulesoft.org/mule-school-the-mulemessage-property-scopes-and-variables/#sthash.yGzTrZEQ.dpuf

于 2013-06-24T12:38:07.950 回答
1

是的,Mule 入站属性不会在传输过程中传播。如此链接中所述

  • 入站属性由消息源自动生成,用户无法设置或操作。
  • 出站属性可由用户配置。出站属性在流的过程中设置,并且当消息通过传输从一个流的出站端点传递到不同流的入站端点时,可以成为入站属性。(请注意,如果消息通过 flow-ref 而不是传输传递到新流,则出站属性将保持出站属性,而不是转换为入站属性。)

但是请注意,您可以通过复制如下属性来保留传输之间的所有入站属性:

<copy-properties propertyName="*" />

这将复制所有属性,如果您只想要几个,您也可以指定特定的属性名称。

于 2013-06-24T13:30:51.513 回答
0

Mule 入站属性:这些属性由消息源或 inblound 端点自动设置。您无法设置它们。它们是不可变的,即。您不能对它们进行任何更改。您只能访问它们,但不能修改它们。他们在穿越“交通障碍”后迷路了

Mule Outbound 属性:这些属性可以由您设置。在跨越类似 http 的传输障碍后,出站属性会自动转换为入站属性,并且不再在出站范围内找到它们。

于 2016-12-11T16:20:32.533 回答