在WSO2 ESB中使用Fire和忘记API资源进行日志记录时出错

时间:2015-12-11 08:31:48

标签: wso2 wso2esb

根据One-Way Messaging in a Fire-and-Forget Mode through ESB in WSO2 ESB Documentation,我有以下资源:

<resource methods="GET" uri-template="/{serviceId}/*">
  <inSequence>
     <property name="CHANNEL_COD" value="999"/>
     <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
     <property name="OUT_ONLY" value="true"/>
     <log>
        <property name="**** INSIDE" value="[API] /emma/{serviceId}"/>
     </log>
     <property name="serviceId" expression="get-property('uri.var.serviceId')"/>
     <log>
        <property name="**** SERVICE_VALUE" expression="get-property('serviceId')"/>
     </log>
     <switch source="get-property('serviceId')">
        <case regex="Servicio">
           <log>
              <property name="**** Servicio CASE" expression="get-property('serviceId')"/>
           </log>
        </case>
        <default>
           <log>
              <property name="**** Default CASE" expression="get-property('serviceId')"/>
           </log>
        </default>
     </switch>
     <send/>
  </inSequence>

但是,当我查看SystemLog(来自WSO2控制台)时,我可以看到以下两条错误消息:

  1. 系统无法从/ context / servicio URL推断传输信息。
  2. 发送信息时出现意外错误
  3. 行为是正确的,但我不知道我做错了什么。

    PD:它是尝试Fire&amp; Forget资源的模拟资源。

1 个答案:

答案 0 :(得分:1)

你的inSequence结尾有一个发送。但是如果没有端点定义并且没有初始化加热器To,则此发送意味着“将响应消息发送回呼叫者”。

但是,没有请求,因此没有响应,而且,您定义FORCE_SC_ACCEPTED发送回ack(http状态代码202)

删除这个没有意义的发送(在你提到的示例中,发送中有一个端点定义)