比方说,名为inputStream的流定义有属性名称:string、姓氏:string、address:string。对于此流,如果事件生成器定义如下,
<property>
<from xpath="xpathForSurname"/>
<to default="NULL" name="surname" type="string"/>
</property>
<property>
<from xpath="xpathForName"/>
<to default="NULL" name="name" type="string"/>
</property>
<property>
<from xpath="xpathForAddress"/>
<to default="NULL" name="address" type="string"/>
</property>当我发送一个输入(‘约翰’,‘列侬’,‘利物浦’),我希望inputStream是‘约翰’,‘列侬’,‘利物浦’,但结果流是‘列侬’,‘约翰’,‘利物浦’。原因是属性的值是按照构建器定义中的映射序列添加到流中的。
因此,定义中的<to>标记变得毫无意义( xpathForSurname计算上的值不是映射到surname,而是name)。这是个错误还是故意的?
发布于 2013-12-17 08:36:21
是的,这似乎是CEP3.0.0中的一个bug,并将在以后的版本中修复。我创建了一个JIRA,其中包含了您在CEP-640中提供的信息。
现在,解决办法是让输入流直接通过事件生成器来实现,而不需要在执行计划级别重新排序属性和对排序进行任何操作。希望这个解决办法能对你有用。
https://stackoverflow.com/questions/20608165
复制相似问题