我必须为WSO2 ESB中的代理服务的后序设置Hadoop端点。我应该将WS响应包含在Hadoop文件存储库中。 以下是将在Hadoop上写入文件的PUT命令的语法: 2-step commands for file-writing
如何实现一个工作代理,在后台执行这2个步骤,以便在Hadoop上保存WS响应?
答案 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,因此基本流程如下所示:
<call>
并获取保存数据的网址。从上面的回复中,提取标题并将其保存到属性。
<property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/>
接下来,您可以再次使用call mediator调用其余服务。在调用它之前,您可能必须使用Payload Factory介体构建json有效负载。还要确保在此处声明端点时,将正确的格式添加为“rest”(在此处读取地址端点上的位)。
您需要在端点,有效负载工厂介体,调用介体,属性介体和标头介体上读取一些内容才能使其正常工作。