WSO2 ESB:我们可以使用Call Mediator for Rest Service来发布(POST HTTP方法)xml请求吗?

时间:2016-04-18 12:20:57

标签: wso2 wso2esb

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

但是当我使用具有相同HTTP端点url配置的调用介体时,这不起作用。我想知道我们可以使用调用中介来进行Post HTTP方法吗?当我为GET HTTP方法使用Call mediator时,它只需要查询参数,并且不需要任何请求xml,这绝对没问题。

以下是进一步的信息:

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

<?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格式。

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

    1. 选择Http终点时
    2. [2016-04-21 12:07:50,179] INFO - HTTPSender无法将viaPost发送到url [http://:// UpdateOrganization / mediate]

      java.net.SocketTimeoutException:读取超时         在java.net.SocketInputStream.socketRead0(本机方法)

2 个答案:

答案 0 :(得分:0)

我认为我们不能为此目的使用呼叫中介,因为呼叫中介是上下文无意识的中介。

答案 1 :(得分:0)

您的电话应该已经开箱即用。 如果您希望简单的xml作为响应,您是否尝试设置format="pox"