WSO2 ESB如何设置来自localentry的输入消息?

时间:2015-03-01 16:25:05

标签: wso2 wso2esb

我想在WSO2 ESB配置中创建输入消息。 我怎样才能做到这一点? 例如:它可能来自localentry。

<localEntry key="x">
   <a>
      <b>123</b>
   </a>
</localEntry>

我想将此XML作为输入消息复制到inSequence。 感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用Class Mediator来实现这一目标。因此,在为您的调解器开发的引用自定义类中,您可以检索本地条目并将有效负载设置为其值。 Here是Ratha关于从类中检索注册表资源的教程。以及来自同一页面的一些代码:

// if localentry "testLocalentry" defined in synapse econfig
Entry localEntryObj = (Entry) synapseMsgContext.getConfiguration()
        .getLocalRegistry().get("testLocalentry");
System.out.println(" value: " + localEntryObj.getValue());
System.out.println(" Filename : " + localEntryObj.getFileName());

可能还有其他方法。也许用Groovy做一个Script Mediator并试着看看你是否可以用同样的方式检索条目。之后设置有效负载将是一次呼叫:

mc.setPayloadXML(yourXmlStringWithValueOfLocalEntry);

答案 1 :(得分:0)

根据您的要求,您需要使用本地条目向ESB注入消息,但不需要向ESB发送请求。对于这种用例,您可以使用WSO2 ESB的计划任务[1]功能。在那里,您可以指定要以周期性方式执行的序列。在该序列中,您可以从本地条目读取消息,并使用enrich介体[2]注入消息正文。

[1] https://docs.wso2.com/display/ESB481/Adding+and+Scheduling+Tasks [2] https://docs.wso2.com/display/ESB481/Enrich+Mediator