Может ли HTTP-приемник CEP получать несколько узлов данных один раз

Я использовал ESB для преобразования XML-сообщения в HTTP-приемник CEP, XML:

<result>
  <event>
      <tag>0101A01B001</tag>
      <time>10:00:01</time>
      <value>30.45</value>
  </event>
  <event>
      <tag>0101A01B001</tag>
      <time>10:00:02</time>
      <value>33.7</value>
  </event>
  <event>
      <tag>0101A01B001</tag>
      <time>10:00:03</time>
      <value>23.4</value>
  </event>
  <event>
      <tag>0101A01B001</tag>
      <time>10:00:04</time>
      <value>33.15</value>
  </event>
</result>

И http-приемник в CEP:

<?xml version="1.0" encoding="UTF-8"?>
  <eventReceiver name="recv_dss1" statistics="disable" trace="enable" xmlns="http://wso2.org/carbon/eventreceiver">
    <from eventAdapterType="http">
      <property name="transports">all</property>
    </from>
    <mapping customMapping="enable" type="xml">
      <property>
          <from xpath="/result/data/tag"/>
          <to name="tag" type="string"/>
      </property>
      <property>
          <from xpath="/result/data/time"/>
          <to name="time" type="long"/>
      </property>
      <property>
          <from xpath="/result/data/value"/>
          <to name="value" type="double"/>
      </property>
    </mapping>
    <to streamName="dss_stream3" version="1.0.0"/>
 </eventReceiver>

HTTP-приемник каждый раз получает только первый узел «событие», поэтому как настроить приемник, чтобы он мог получать все узлы «события» один раз?


person yeahliu    schedule 13.04.2016    source источник


Ответы (1)


В конфигурации вам необходимо настроить «Выражение XPath для родительского селектора», чтобы указать родительский элемент событий, в данном случае это /result.

Затем элементы события должны быть переданы из родительского тега, например. /data/time

Подробности см. в документации по сопоставлению ввода XML WSO2 CEP 4.1: https://docs.wso2.com/display/CEP410/Input+Mapping+Types#InputMappingTypes-XMLinputmappingXMLInputMapping

person suho    schedule 13.04.2016