有人能用一般的例子解释callout中介器的作用吗?以及如何配置源和目标?调出调解员与发送调解员有何不同?
'source'使用XPath表达式(我们可以选择所需的xml节点作为请求发送)或注册表项(我们可以在注册表中存储请求消息)指定请求消息的有效载荷。"target"指定了一个节点,在当前消息上下文中将在该节点附加生成的有效负载(响应)。
callout中介和send中介的区别在于,callout中介将通过执行阻塞调用将响应返回到相同的序列。所以callout中介器保持线程直到事务完成。
In send中介器响应返回到OutSequence,您可以在其中将其发送回客户端。因此,线程将立即释放并发送消息。
这是一个很好的博客,你可以在这里找到用法。
您可以在Callout Mediator的WSO2文档中找到一个很好的解释。
- Source:定义请求的有效负载。有三个选项(XPath、Property和Envelope)可以定义有效负载的来源。大多数时候,我们使用信封来发送完整的内容
- 目标:定义响应的存储位置。有一些选项(XPath和Property),可以在当前消息中设置响应,也可以在属性中设置响应
下面是一个我们经常用来发送整个内容并将响应存储在属性中的简单示例:
<callout serviceURL="http://wsf.cdyne.com/WeatherWS/Weather.asmx" action="http://ws.cdyne.com/WeatherWS/GetWeatherInformation">
<source type="envelope"/>
<target key="response"/>
</callout>
<!-- print the response property -->
<log level="custom">
<property name="response" expression="get-property('response')"/>
</log>
你可以在这里找到另一个例子。