无法在WSO2ESB 4.8.1下运行API

时间:2015-12-04 14:17:19

标签: wso2 wso2esb

我已添加" API"通过WSO2ESB的管理控制台,非常简单:

<api xmlns="http://ws.apache.org/ns/synapse" name="getmessage" context="/newservices">
   <resource methods="GET" url-mapping="/getmessage">
      <inSequence>
         ....
         <log level="full"></log>
      </inSequence>
      <outSequence>
         <send></send>
      </outSequence>
   </resource>
</api>

由于log mediator,我在inSequence的末尾看到了消息,但无法获得任何响应。错误日志为空。知道怎么收吗?

此外,我注意到了一些非常奇怪的事情:

  1. 即使我在请求中指定了错误的上下文(/ qwerty而不是 / newservices) - 无论如何都会记录这样的请求,就像它正在通过一样 这个inSequence
  2. 设置&#34;端口&#34; &#34; api&#34;的财产变化 什么都没有,它甚至没有听到指定的端口
  3. 任何线索都会受到赞赏。

    UPD

    根据让 - 米歇尔提供的提示,我找到了一系列参数,使其最终发挥作用:

    <property name="messageType" value="application/xml" scope="axis2"></property>
    <property name="RESPONSE" value="true" scope="default"></property>
    <property name="NO_ENTITY_BODY" scope="axis2" action="remove"></property>
    <property name="HTTP_SC" value="200" scope="axis2"></property>
    

    我不明白为什么,但只有所有这些一起使用强制API来返回响应体。

1 个答案:

答案 0 :(得分:0)

在inSequence中,您不会向端点发送任何内容,因此,您不会收到任何响应:您的outSequence永远不会被执行。如果要发回ACK,可以在inSequence中设置此属性以发送http satus代码202:

<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>

当您向ESB发送内容时,如果没有处理该消息的服务,默认情况下会执行主序列,您会发现<log level="full">