我使用MULE版本3.3.0 CE,我想从inbound中获取一些值,然后将其传递给java方法,在java方法中对传递的值进行一些更改,最后我再次将它从java方法传递给出境????
答案 0 :(得分:7)
您可以仅使用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>
答案 1 :(得分:3)
在onCall中,您可以按如下方式获取消息:
MuleMessage message = eventContext.getMessage();
现在您可以获取入站属性:
Object someProp = message.getInboundProperty(“some_prop_name”);
对其进行操作后,将其作为出站属性放回:
message.setOutboundProperty(“some_prop_name”,someProp);