1

这个问题与 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 组件访问这些属性值?

4

2 回答 2

1

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

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

将返回您的流量属性

于 2013-07-18T15:49:40.047 回答
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
}
于 2012-07-26T19:30:47.757 回答