在wso2 esb outsequence代理服务中配置hadoop端点

s5a0g9ez  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(432)

我必须为wso2esb中的代理服务设置hadoop端点。我应该将ws响应传递到hadoop文件存储库中。下面是在hadoop上写入文件的put命令的语法:用于文件写入的两步命令
如何实现一个工作代理来执行这两个步骤,以便在hadoop上保存ws响应?

tjvv9vkg

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”),并使用默认端点。
您需要阅读一些关于端点、有效负载工厂中介器、调用中介器、属性中介器和头中介器的内容才能使其正常工作。

相关问题