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

时间:2015-07-03 11:02:38

标签: wso2 sequence esb

我正在配置代理服务,我有三个序列: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}

事先感谢谁知道如何解决它。

此致 克劳迪奥

1 个答案:

答案 0 :(得分:2)

首先将keyvalue分配给属性来测试它,你会发现它无法正常工作:) 尝试: <sequence key="{concat('s', get-property('myProp'))}"/>