CEP http接收器可以一次接收多个数据节点

时间:2016-04-13 01:58:27

标签: wso2 wso2cep wso2-das

我使用ESB将XML消息转换为CEP http接收器,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>

CEP中的http接收器:

<?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接收器每次只接收第一个“事件”节点,那么如何配置接收器可以一次接收所有“事件”节点?

1 个答案:

答案 0 :(得分:1)

在配置中,您需要配置“父选择器XPath表达式”以指示事件的父元素,在本例中为/result

然后,应该从父标签引用事件的元素,例如, /data/time

有关详细信息,请参阅WSO2 CEP 4.1 XML输入映射文档:here