我想在WSO2 ESB配置中创建输入消息。 我怎样才能做到这一点? 例如:它可能来自localentry。
<localEntry key="x">
<a>
<b>123</b>
</a>
</localEntry>
我想将此XML作为输入消息复制到inSequence
。
感谢。
答案 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