gpt4 book ai didi

filter - 如何在wso2 esb中比较过滤器中介中的整数属性?

转载 作者:行者123 更新时间:2023-12-04 23:54:35 25 4
gpt4 key购买 nike

我是 wso2 esb 的新手,定义了 3 个返回整数值的服务,并使用过滤器介体从一个路由到另一个,但工作不正确,并且在过滤模式下总是返回 false
我的来源是:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="SeqOne">
<log level="full"/>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:m0="http://tempuri.org/" name="CParam" expression="//m0:SumSerViseResponse/m0:SumSerViseResult" scope="default" type="INTEGER"/>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd" name="CParam" expression="$ctx:CParam"/>
</log>
<property name="propertyA" value="4" scope="default" type="INTEGER"/>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd" name="propertyA" expression="get-property('propertyA')"/>
</log>
<property xmlns:ns="http://org.apache.synapse/xsd" name="propertyCompare" expression="$ctx:CParam > get-property('propertyA')" type="STRING"/>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd" name="propertyCompare" expression="get-property('propertyCompare')"/>
</log>
<filter xmlns:ns="http://org.apache.synapse/xsd" source="get-property('propertyCompare')" regex="true">
<then>

最佳答案

我尝试了您的方案并获得了与您相同的输出。然后深入研究它,因为这是一个基本功能,而且我认为我以前做过类似的事情。

这里的问题在于属性(property)的类型。由于某些奇怪的原因 INTEGER 在这里不起作用。你需要有 DOUBLESTRING 。即使你有字符串,当你像这里一样进行比较时,它也会正确地转换它。以下对我有用。

<inSequence>
<log level="full"/>
<property xmlns:m0="http://tempuri.org/"
name="CParam"
expression="//m0:SumSerViseResponse/m0:SumSerViseResult"
scope="default"
type="DOUBLE"/>
<log level="custom">
<property name="CParam" expression="$ctx:CParam"/>
</log>
<property name="propertyA" value="4.0" scope="default" type="DOUBLE"/>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd"
name="propertyA"
expression="get-property('propertyA')"/>
</log>
<property name="propertyCompare"
expression="$ctx:CParam > get-property('propertyA')"
scope="default"
type="BOOLEAN"/>
<log level="custom">
<property name="propertyCompare" expression="get-property('propertyCompare')"/>
</log>
<filter xpath="$ctx:CParam > get-property('propertyA')">
<then>
<send>
<endpoint>
<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
</then>
<else>
<drop/>
</else>
</filter>
</inSequence>

关于filter - 如何在wso2 esb中比较过滤器中介中的整数属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com