ESB MULE将参数传递给java方法



我使用MULE版本3.3.0 CE,我想从入站头中获得一些值,然后将其传递给java方法,在java方法中对传递的值进行一些更改,最后再次将其从java方法传递到出站????

与其将Java bean绑定到Mule API(使用Callable),不如只使用MEL,例如:

<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. 让你的Java组件实现org.mule.api.lifecycle.Callable
  2. 在它的onCall中,你可以得到如下消息:

    MuleMessage message = eventContext.getMessage();

  3. 现在您可以获得入站属性:

    Object someProp = message.getInboundProperty("some_prop_name");

  4. 在对其进行操作后,将其作为出站属性放回:

    消息。setOutboundProperty("some_prop_name",someProp);

最新更新