我必须为wso2esb中的代理服务设置hadoop端点。我应该将ws响应传递到hadoop文件存储库中。下面是在hadoop上写入文件的put命令的语法:用于文件写入的两步命令如何实现一个工作代理来执行这两个步骤,以便在hadoop上保存ws响应?
tjvv9vkg1#
首先,在insequence中,可以使用call mediator调用请求url。
<call> <endpoint> <address uri="http://localhost:9000/services/YourService"/> </endpoint> </call>
接下来,您可以从上面的响应中提取头并将其设置为下一个请求的“to”头。然后使用send或call中介程序使用“default”端点发送内容(默认端点通过查看“to”头将消息发送到正确的地址)。
<header name="To" scope="transport" expression="get-property('redirectUri')"/>
本页中的示例5描述了如何使用默认(动态)端点。更新:由于需要调用外部rest服务并将其保存到hadoop中,因此基本流程如下所示:首先你要做一个 <call> 到hadoop端点并获取保存数据的url。从上面的响应中,提取头并将其保存到属性。 <property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/> 接下来,您可以再次使用callmediator调用rest服务。在调用此函数之前,您可能需要使用负载工厂中介器构建一个json负载。还要确保在这里声明终结点时,将正确的格式添加为“rest”(请阅读本文中有关地址终结点的内容)。当您从rest服务接收到响应时,您可以再次使用负载工厂对接收到的响应进行任何必要的修改,以构建一个正确格式化的请求来调用hadoop端点。最后,您可以将请求发送到hadoop端点。在这里调用send mediator之前,您需要设置上面给出的“to”头(使用先前提取的属性“redirecturi”),并使用默认端点。您需要阅读一些关于端点、有效负载工厂中介器、调用中介器、属性中介器和头中介器的内容才能使其正常工作。
<call>
<property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/>
1条答案
按热度按时间tjvv9vkg1#
首先,在insequence中,可以使用call mediator调用请求url。
接下来,您可以从上面的响应中提取头并将其设置为下一个请求的“to”头。然后使用send或call中介程序使用“default”端点发送内容(默认端点通过查看“to”头将消息发送到正确的地址)。
本页中的示例5描述了如何使用默认(动态)端点。
更新:
由于需要调用外部rest服务并将其保存到hadoop中,因此基本流程如下所示:
首先你要做一个
<call>
到hadoop端点并获取保存数据的url。从上面的响应中,提取头并将其保存到属性。
<property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/>
接下来,您可以再次使用callmediator调用rest服务。在调用此函数之前,您可能需要使用负载工厂中介器构建一个json负载。还要确保在这里声明终结点时,将正确的格式添加为“rest”(请阅读本文中有关地址终结点的内容)。当您从rest服务接收到响应时,您可以再次使用负载工厂对接收到的响应进行任何必要的修改,以构建一个正确格式化的请求来调用hadoop端点。
最后,您可以将请求发送到hadoop端点。在这里调用send mediator之前,您需要设置上面给出的“to”头(使用先前提取的属性“redirecturi”),并使用默认端点。
您需要阅读一些关于端点、有效负载工厂中介器、调用中介器、属性中介器和头中介器的内容才能使其正常工作。