本地条目作为wso2 esb中介中的筛选条件

本地条目作为wso2 esb中介中的筛选条件,wso2,wso2esb,Wso2,Wso2esb,我有一个序列作为代理服务的一部分,它基于“源和正则表达式”进行过滤。我将源定义为作为SOAP请求一部分的元素值,将正则表达式定义为“ESB中定义的本地条目”。然而,结果并不是我所期望的 本地输入定义为内联文本(myFields)-FIELD1 | FIELD2 | FIELD3 中介序列定义为- 当我以以下方式发送SOAP请求时- 字段1 执行总是去其他部分。有什么建议吗?对于筛选器中介,regex属性必须是字符串,而不是表达式 您可以使用XPATH2“匹配” 样本: <inSeq

我有一个序列作为代理服务的一部分,它基于“源和正则表达式”进行过滤。我将源定义为作为SOAP请求一部分的元素值,将正则表达式定义为“ESB中定义的本地条目”。然而,结果并不是我所期望的

本地输入定义为内联文本(myFields)-FIELD1 | FIELD2 | FIELD3

中介序列定义为-

当我以以下方式发送SOAP请求时-

字段1


执行总是去其他部分。有什么建议吗?

对于筛选器中介,regex属性必须是字符串,而不是表达式

您可以使用XPATH2“匹配”

样本:

<inSequence>
    <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
    <property name="fieldName" expression="$body/fieldName/text()"/>
    <property xmlns:fn="http://www.w3.org/2005/xpath-functions" name="match" expression="fn:matches(syn:get-property('fieldName'),syn:get-property('myFields'))"/>
    <filter source="get-property('match')" regex="true">
        <then>
            <log level="full" separator="*****YES*********">
                <property name="myFields" expression="get-property('myFields')"/>
            </log>
        </then>
        <else>
            <log level="full" separator="*********NO**************">
                <property name="myFields" expression="get-property('myFields')"/>
            </log>
        </else>
    </filter>
    <log level="full"/>
</inSequence>


感谢您的回复。我已经在ESB中启用了XPATH2,但在添加此序列逻辑时,在管理控制台上看到以下错误消息:序列配置无效:字符串索引超出范围:-1这是代理服务定义中的“插入序列”:。。。。我使用ESB 4.8.1,不可能将其置于代理定义之外吗?作为序列定义的一部分?当然,您可以定义一个命名序列,它的内容将是您在我的样本中找到的介于和之间的标记。我尝试了Jean,这就是我得到错误的原因,因为“序列配置无效:字符串索引超出范围:-1”