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

WSO2 ESB How can I set input message from localentry?

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

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

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

您可以通过使用 Class Mediator. So in the referenced custom class you develop for your mediator you can retrieve your local entry and set the payload to its value. Here 来实现这一目标是 Ratha 关于从 class 中检索注册表资源的教程。以及来自同一页面的一些代码:

// 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);

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

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