2013-03-05 53 views
2

我使用MULE版本3.3.0 CE,我想從入站中的頭部獲取一些值,然後將其傳遞給java方法,在java方法中對傳入的值進行一些更改,最後我再次將它從java方法傳遞給outboundESB MULE將參數傳遞給java方法

回答

7

相反綁你的Java bean的騾子API(與Callable),你可以使用MEL只,例如用做受invoke元素影響。如果這是一個問題,那麼你可以去:

<expression-component> 
    propVal = app.registry.yourBean.yourMethod(message.inboundProperties['inboundPropertyName']); 
    message.outboundProperties['outboundPropertyName'] = propVal; 
</expression-component> 
+0

在第二種形式中,flowVars/InvocationProperties是考慮入站,出站還是其他? – mmeyer 2013-12-23 21:45:12

+0

其他東西:它們是流變量,即可在'flowVars'映射中訪問,除非您停用此功能,否則它們是MEL腳本的全局變量。 – 2013-12-24 01:01:25

3
  1. 讓你的Java組件實現org.mule.api.lifecycle.Callable
  2. 在其OnCall中,你可以得到的信息如下:

    MuleMessage消息= eventContext.getMessage();

  3. 現在可以獲取入站屬性:

    對象someProp = message.getInboundProperty( 「some_prop_name」);

  4. 在它運行後,你把它重新爲出屬性:

    message.setOutboundProperty( 「some_prop_name」,someProp);

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

    這樣做的警告消息有效負載是:

+0

感謝您的回覆。 :)你能解釋一下嗎?首先我在.mflow文件中設置一個變量,然後在java類中調用getable? – brelian 2013-03-05 15:43:28