【问题标题】:MULE 3.2 - How to access Flow Session Property Values from a java componentMULE 3.2 - 如何从 java 组件访问流会话属性值
【发布时间】:2013-08-24 12:03:14
【问题描述】:

此问题与 Mule ESB 3.2 相关。

如果我从 JMS 读取值,转换为 JSON 并将值存储在我的会话中,如下所示:

<message-properties-transformer scope="session" doc:name="save values to session">            
        <add-message-property key="id" value="#[json-node://id]"/>
        <add-message-property key="name" value="#[json-node://name]"/>
</message-properties-transformer>   

<component class="org.mule.example.echo.Echo"/>

如何从 java 组件中访问这些属性值?

【问题讨论】:

    标签: components message esb mule transformer


    【解决方案1】:

    首先,你的类必须实现org.mule.api.lifecycle.Callable 接口。然后你可以像这样在onCall方法中获取属性值

    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {
       String id = eventContext.getMessage().getProperty("id", PropertyScope.SESSION);
       String name = eventContext.getMessage().getProperty("name", PropertyScope.SESSION);
       //Do the rest of your stuff
    }
    

    【讨论】:

    【解决方案2】:

    如果属性是用 OutboundScope 添加的,那么简单

    public void process(@Payload String payload, @OutboundHeaders Map headers ){
       String id =   headers.get("name") 
    }
    

    将返回您的流属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多