web-services - 在 WSO2 ESB 后序代理服务中配置 Hadoop 端点

标签 web-services hadoop proxy wso2 wso2-esb

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

如何实现在 Hadoop 上保存 WS 响应的后续执行这 2 个步骤的工作代理?

最佳答案

首先,在 inSequence 中,您可以调用调解器来请求 url。

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

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

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

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

更新:

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

  1. 首先你制作一个<call>到 hadoop 端点并获取 url 以保存数据。

  2. 从上面的响应中,提取 header 并将其保存到属性中。
    <property name"redirectUri" expression="get-property('hadoop_response_header_name')" scope="transport"/>

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

  4. 当您收到来自其余服务的响应时,您可以再次使用负载工厂对收到的响应进行任何必要的修改,以构建格式正确的请求来调用 hadoop 端点。

  5. 最后,您可以将请求发送到 hadoop 端点。在此处调用发送中介之前,您需要设置“To” header (使用之前提取的属性“redirectUri”)并使用默认端点。

您需要阅读一些关于端点、有效负载工厂中介、调用中介、属性中介和 header 中介的内容才能使其正常工作。

关于web-services - 在 WSO2 ESB 后序代理服务中配置 Hadoop 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282485/

相关文章:

java - Http 基本身份验证不适用于 Spring WS 和 WebServiceTemplate 凭据

hadoop - 我可以将备用名称节点添加到现有的 Hadoop 集群中吗(带有名称节点和辅助名称节点)

android-studio - Gradle 5.4.1解决了我的代理问题。有人可以解释为什么吗?

c++ - aws-sdk-cpp:如何通过代理访问S3?

java - 在 Spring WS 中返回带有自定义错误代码和消息的 SOAP 错误对象

java - org.glassfish.jersey.server.internal.process.MappableException : org. apache.catalina.connector.ClientAbortException : java.net.SocketException:

java - 如何使用自上而下的Web服务?

java - 如何为64位Linux机器编译Hadoop?

具有复合键的 Hadoop 困难

networking - PAC文件中的 "DIRECT"代表什么