ESB MULE将参数传递给java方法

ESB MULE将参数传递给java方法,mule,invoke,payload,inbound,Mule,Invoke,Payload,Inbound,我使用MULE版本3.3.0 CE,我想从入站的头中获取一些值,然后将其传递给java方法,在java方法中对传递的值进行一些更改,最后再次将其从java方法传递给出站 让Java组件实现org.mule.api.lifecycle.Callable 在onCall中,您可以得到如下信息: MuleMessage message=eventContext.getMessage() 现在,您可以获得入站属性: 对象someProp=message.getInboundProperty(“some_

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

  • 让Java组件实现org.mule.api.lifecycle.Callable
  • 在onCall中,您可以得到如下信息:

    MuleMessage message=eventContext.getMessage()

  • 现在,您可以获得入站属性:

    对象someProp=message.getInboundProperty(“some_prop_name”)

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

    message.setOutboundProperty(“some_prop_name”,someProp)


  • 与将Java bean绑定到Mule API(使用
    Callable
    )不同,您可以仅使用MEL来实现这一点,例如:

    <invoke object-ref="yourBean"
            method="yourMethod"
            methodArguments="#[message.inboundProperties['inboundPropertyName']]" />
    
    <set-property propertyName="outboundPropertyName"
                  value="#[payload]" />
    

    谢谢你的回复。:)你能再解释一下吗?首先,我在.mflow文件中设置了一个变量,然后在java类中调用get it??在第二种形式中,flowVars/InvocationProperties是否被视为入站、出站或其他内容?其他内容:它们是流变量,即在
    flowVars
    映射中可访问,并且,除非禁用此功能,否则它们是MEL脚本的全局变量。
    <expression-component>
        propVal = app.registry.yourBean.yourMethod(message.inboundProperties['inboundPropertyName']);
        message.outboundProperties['outboundPropertyName'] = propVal;
    </expression-component>