【问题标题】:WSO2 ESB: Can we use Call Mediator for Rest Service to post (POST HTTP Method) the xml request?WSO2 ESB:我们可以使用 Call Mediator for Rest Service 来发布(POST HTTP 方法)xml 请求吗?
【发布时间】:2016-04-18 12:20:56
【问题描述】:

当我在 HTTP 端点 url 中使用带有 Rest 服务 Post HTTP 方法的发送中介创建代理时。选择端点作为代理上的 HTTP 端点并在没有肥皂信封的情况下发布请求 xml,这完美地工作并在响应窗口中获得响应。

但是当我使用具有相同 HTTP 端点 url 配置的调用中介时,这不起作用。我想知道我们可以将调用中介用于 Post HTTP 方法吗?当我为 GET HTTP 方法使用 Call 调解器时,它只需要查询参数并且不需要任何请求 xml,这绝对可以正常工作。

这里是更多信息:

但是,通过在 callmediator 中使用地址端点可以解决问题。当我从外部 Restt 客户端或 Soap UI 调用代理时,它确实有效。如果我在 wso2 中使用 Try this Service 选项,ESB 将失败,结果为 1. 选择 Soap12 端点时和 2 选择 HTTP 端点时,如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="postIDMPCall"
       transports="https http"
       startOnLoad="true"
       trace="disable">
   <description/>
   <target>
      <inSequence>
         <property name="ContentType" value="text/xml" scope="axis2" type="STRING"/>
         <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
         <payloadFactory media-type="xml">
            <format>
               <organizationList xmlns="">
                <xml content>
               </organizationList>
            </format>
            <args/>
         </payloadFactory>
        <header name="_user" scope="transport" value="username"/>
         <header name="_password" scope="transport" value="Password"/>
<call blocking="true">
            <endpoint>
               <address uri="http://<ip-address>:<port>/<resource-path>/UpdateOrganization"
                        format="rest"/>
            </endpoint>
         </call>
        </inSequence>
   </target>
</proxy>
  1. 输出:选择soap12端点时 尽管发布了正确的 xml 服务,但并没有为soap12 端点重新识别正确的 xml 格式。

    失败 记录未成功处理。请提供有效的请求 XML

    1. 选择 Http 端点时

    [2016-04-21 12:07:50,179] 信息 - HTTPSender 无法将ViaPost 发送到 url[http://UpdateOrganization/mediate]

    java.net.SocketTimeoutException: 读取超时 在 java.net.SocketInputStream.socketRead0(Native Method)

【问题讨论】:

  • 能否详细说明。错误是什么?您的代理是什么样的?
  • 你能分享你的代理代码吗?

标签: wso2 wso2esb


【解决方案1】:

我认为我们不能为此目的使用调用中介,因为调用中介是不知道上下文的中介。

【讨论】:

    【解决方案2】:

    您的调用应该已经执行了开箱即用的发布。 如果您期望简单的 xml 作为响应,您是否尝试设置 format="pox"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多