wso2 - 使用 属性 中的值来检索序列名称

wso2 - using value from a property to retrive sequence name

我正在配置代理服务,我有三个序列:s1、s2、s3

1、2、3 的值存储在本地注册表变量中,它从注册表中获取并存储在名为 'myProp'

的 属性 中

现在,根据这个 myProp 的值,我想调用三个序列之一。

我试过这个:

               <sequence key="s{concat(get-property('myProp'))}"/>

但不起作用。

这是 属性 代码:

         <property name="myProp"
               expression="get-property('registry','conf:repository/myVersion2.xml')"
               scope="default"
               type="STRING"/>

这就是我想要做的:

         <filter source="get-property('myProp')"
             regex=".*&gt;1&lt;.*"
             description="filter">
        <then>
           <log level="custom" separator=":">
              <property name="TestVersion" value="LOG_S1_TRUE"/>
              <property name="TestVersion" expression="get-property('myProp')"/>
           </log>
           <sequence key="s{concat(get-property('myProp'))}"/>
        </then>
        <else>
           <log level="custom" separator=":">
              <property name="TestVersion" value="LOG_S1_FALSE"/>
           </log>
        </else>
     </filter>

我从日志中得到这个错误:

TID: [0] [ESB] [2015-07-03 12:47:25,340] ERROR {org.apache.synapse.mediators.base.SequenceMediator} -  Sequence named Value {name ='null', keyValue ='s{concat(get-property('myProp'))}'} cannot be found {org.apache.synapse.mediators.base.SequenceMediator}

在此先感谢知道如何解决它的人。

问候 克劳迪奥

首先将键值赋给属性进行测试,你会发现它不能工作:) 尝试: <sequence key="{concat('s', get-property('myProp'))}"/>