需要澄清mule中的变量吗

需要澄清mule中的变量吗,mule,Mule,关于mule中的变量,我有一些问题 如果我有下面这样的有效载荷 在Groovy脚本中访问此信息的最佳方式是什么#[有效载荷]似乎不起作用 <scripting:script engine="Groovy"> ... qr.update(conn, "INSERT INTO event values(#[payload], 1)"); .. </scripting:script> 我有一个java类,它解析字符串并使用get set方法返回值 class只是一个bean

关于mule中的变量,我有一些问题

  • 如果我有下面这样的有效载荷
  • 在Groovy脚本中访问此信息的最佳方式是什么#[有效载荷]似乎不起作用

    <scripting:script engine="Groovy">
    ...
    qr.update(conn, "INSERT INTO event values(#[payload], 1)");
    ..
    </scripting:script>
    
    我有一个java类,它解析字符串并使用get set方法返回值

    class只是一个bean

    getSno将返回序列号。 getApplication将返回应用程序名称

    我不知道如何将值从mule传递到java类,并将值返回给mule

    我需要使用

    public Object transform(MuleMessage message, String encoding) throws TransformerException
    
    如果下面的初始有效负载具有上面的字符串,我是否可以将此有效负载传递给自定义转换器并从转换器返回所需的值

    <set-payload value="values #[payload]" doc:name="Set Payload" />
    <transformer ref="customTransformer" doc:name="Transform string"/>
    <set-payload value="values #[payload['sNo']]" doc:name="Set Payload" />
    
    
    
  • 在Groovy中,
    payload
    变量绑定到消息有效负载。你可以直接使用它
    #[payload]
    是一个MEL表达式,与Groovy无关

  • 这取决于你所说的“任何时间点”是什么意思。如果它在同一个流或它引用的流中,则可以使用
    设置变量
    。如果它在端点交互(outbound->inbound)之后位于另一个流中,请使用
    set property
    ,您将在下一个流中的inbound作用域中找到该值。或者,您可以使用
    set session variable
    将值存储在Mule会话中,该值将在流之间进行维护

  • 创建一个转换器,如上面所示,或者只使用一个普通的POJO作为
    组件
    ,使用一个方法获取字符串并返回Bean。后一种方法的优点是它不会将您绑定到Mule API

  • <set-payload value="values #[payload]" doc:name="Set Payload" />
    <transformer ref="customTransformer" doc:name="Transform string"/>
    <set-payload value="values #[payload['sNo']]" doc:name="Set Payload" />