在WSO2 ESB outsequence代理服务中配置Hadoop端点

时间:2015-10-22 13:42:04

标签: web-services hadoop proxy wso2 wso2esb

我必须为WSO2 ESB中的代理服务的后序设置Hadoop端点。我应该将WS响应包含在Hadoop文件存储库中。 以下是将在Hadoop上写入文件的PUT命令的语法: 2-step commands for file-writing

如何实现一个工作代理,在后台执行这2个步骤,以便在Hadoop上保存WS响应?

1 个答案:

答案 0 :(得分:1)

首先,在inSequence中,您可以使用call mediator进行调用以请求URL。

     <call>
        <endpoint>
           <address uri="http://localhost:9000/services/YourService"/>
        </endpoint>
     </call>

接下来,您可以从上面的响应中提取标题,并将其设置为下一个请求的“To”标题。 然后使用send或call mediator使用“默认”端点发送内容(默认端点通过查看“To”标头将消息发送到正确的地址)。

<header name="To"
             scope="transport"
             expression="get-property('redirectUri')"/>

this page describes中的示例5如何使用默认(动态)端点。

<强>更新

由于您需要调用外部REST服务并将其保存到hadoop,因此基本流程如下所示:

  1. 首先,您为hadoop端点设置<call>并获取保存数据的网址。
  2. 从上面的回复中,提取标题并将其保存到属性。
    <property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/>

  3. 接下来,您可以再次使用call mediator调用其余服务。在调用它之前,您可能必须使用Payload Factory介体构建json有效负载。还要确保在此处声明端点时,将正确的格式添加为“rest”(在此处读取地址端点上的位)。

  4. 当您收到来自其他服务的响应时,您可以再次使用有效负载工厂对收到的响应进行必要的修改,以构建格式正确的请求以调用hadoop端点。
  5. 最后,您可以将请求发送到hadoop端点。在此处调用send mediator之前,您需要设置上面给出的“To”标头(使用先前提取的属性“redirectUri”)并使用默认端点。
  6. 您需要在端点,有效负载工厂介体,调用介体,属性介体和标头介体上读取一些内容才能使其正常工作。