我在变量中存储了一些信息,但我不知道如何在我的java代码中访问它...
示例:
<sub-flow name="EnrichMessage" doc:name="EnrichMessage">
<component doc:name="Scenario01" class="Class01"/>
<set-variable variableName="Parameters" value="#[payload]" doc:name="Variable"/>
<flow-ref name="SubFlow01" doc:name="SubFlow01"/>
<component doc:name="Scenario02" class="Class02"/>
</sub-flow>
我已经看到了一些不完整的答案,但仍然不知道该怎么做。任何人都可以发表完整的答案吗?
感谢。
答案 0 :(得分:2)
在java中,根据您使用的java类的类型,有几种方法可以访问变量:
onCall事件类
public Object onCall(MuleEventContext eventContext, @Payload String payload)
throws Exception {
String returnPath = eventContext.getMessage().getProperty("myReturnPath", PropertyScope.OUTBOUND);
如果传递了MuleMessage:
public void process(@Payload MuleMessage payload ){
String returnPath = messge.getProperty("myReturnPath", PropertyScope.OUTBOUND);
使用OutboundHeader注释
public void process(@Payload String payload, @OutboundHeaders Map headers ){
String prop = headers.get("propname");
答案 1 :(得分:1)
向您的流添加新的Java组件并创建新的Java类实现Callable接口。
public Object onCall(MuleEventContext eventContext) throws Exception {
MuleMessage msg = eventContext.getMessage();
// you can access MuleMessage here
return msg;
}
然后,您可以访问您的MuleMessage。
String method = msg.getProperty("http.method", PropertyScope.INBOUND);
如果您想添加新属性
msg.setProperty("foo", "bar", PropertyScope.INVOCATION);