我正在配置代理服务,我有三个序列: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=".*>1<.*"
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}
事先感谢谁知道如何解决它。
此致 克劳迪奥
答案 0 :(得分:2)
首先将keyvalue分配给属性来测试它,你会发现它无法正常工作:)
尝试:
<sequence key="{concat('s', get-property('myProp'))}"/>