0

当我在 wso2 esb 中使用调用调解器时,使用 DSS 端点我只收到请求,我没有得到响应,即使我将 log 放入 out 序列。我在这里发送我的代理服务。

 <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="Binaryformat"
           transports="https http"
           startOnLoad="true"
           trace="disable">
       <description/>
       <target>
          <inSequence>
    <property name="messageType" value="application/json" scope="axis2"/>
             <property name="ContentType" value="application/json" scope="axis2"/>
             <log level="full">
                <property name="M1" value="*************Callout  PROXY*************"/>
             </log>

             <callout serviceURL="http://192.168.1.201:9769/services/emp_DataService/">
                <source type="envelope"/>
                <target key="response"/>
             </callout>
             <log level="full">
                <property name="Status" expression="get-property('response')"/>
             </log>
             <header name="To" action="remove"/>
             <property name="RESPONSE" value="true"/>
             <!--<property name="OUT_ONLY" value="true"/>-->
             <send/>
          </inSequence>
          <outSequence>
            <log level="full">
                <property name="Status" expression="get-property('response')"/>
             </log>
    <payloadFactory media-type="xml">
                <format>
    <response>outonly</response>
                </format>
                <args/>
             </payloadFactory>
             <property name="OUT_ONLY" value="true"/>
             <send/>
          </outSequence>
       </target>
    </proxy>
4

2 回答 2

5

我认为您错误地配置了标注调解器。在此处检查标注调解器示例

http://docs.wso2.org/display/ESB470/Sample+430%3A+Simple+Callout+Mediator+for+Synchronized+Web+Service+Invocation

以及将 OUT-ONLY 设置为“true”意味着在消息上表示一旦从 ESB 转发它就不会收到响应消息。您可以从这里http://docs.wso2.org/display/ESB470/Generic+Properties阅读更多关于 OUT_ONLY 和其他属性的信息

于 2013-11-20T12:11:33.117 回答
0

callout 调解器是同步的,它将以相同的顺序返回响应(您的 inSequence,通过执行阻塞调用):您的 outSequence 是不必要的。

但是,您应该添加一个 faultSequence 来记录任何错误

您应该在 ESB 和您的端点之间使用 tcpmon(在 ESB_HOME/bin 中启动 tcpmon)来验证发送到您的服务的请求内容,并验证您是否从服务获得响应。

于 2013-11-15T08:47:11.033 回答