2

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

4

2 回答 2

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>
于 2013-03-05T16:20:33.747 回答
3
  1. 让你的 Java 组件实现 org.mule.api.lifecycle.Callable
  2. 在其 onCall 中,您可以获得如下消息:

    MuleMessage 消息 = eventContext.getMessage();

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

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

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

    message.setOutboundProperty("some_prop_name", someProp);

于 2013-03-05T13:00:41.583 回答