【发布时间】:2013-03-05 12:26:45
【问题描述】:
我使用 MULE 版本 3.3.0 CE,我想从入站的标头中获取一些值,然后将其传递给 java 方法,在 java 方法中对传递的值进行一些更改,最后我再次将它从 java 方法传递给出境???
【问题讨论】:
标签: mule invoke payload inbound
我使用 MULE 版本 3.3.0 CE,我想从入站的标头中获取一些值,然后将其传递给 java 方法,在 java 方法中对传递的值进行一些更改,最后我再次将它从 java 方法传递给出境???
【问题讨论】:
标签: mule invoke payload inbound
您可以仅使用 MEL 来执行此操作,而不是将您的 Java bean 绑定到 Mule API(使用 Callable),例如:
<invoke object-ref="yourBean"
method="yourMethod"
methodArguments="#[message.inboundProperties['inboundPropertyName']]" />
<set-property propertyName="outboundPropertyName"
value="#[payload]" />
这有一个警告,即消息有效负载受invoke 元素的影响。如果这是一个问题,那么您可以使用:
<expression-component>
propVal = app.registry.yourBean.yourMethod(message.inboundProperties['inboundPropertyName']);
message.outboundProperties['outboundPropertyName'] = propVal;
</expression-component>
【讨论】:
flowVars 映射中访问,除非您禁用此功能,否则它们是 MEL 脚本的全局变量。
在它的onCall中你可以得到如下消息:
MuleMessage 消息 = eventContext.getMessage();
现在您可以获取入站属性:
Object someProp = message.getInboundProperty("some_prop_name");
对其进行操作后,将其作为出站属性放回:
message.setOutboundProperty("some_prop_name", someProp);
【讨论】: