Wso2 - 使用get-property调用序列

时间:2015-07-08 08:31:22

标签: properties wso2 sequence esb mediator

这是场景: - 三个序列:s1,s2,s3 - 存储在注册表(localEntry)中的一个变量设置为1 - 获取带有concat的seqName - 尝试使用get-property

调用序列

到目前为止我做了什么:

1)提取值

MyClass.prototype.foo = function(){
    var arr = [1, 2, 3];
    var myCurrentInstance = this;    //Store temporary reference
    arr.forEach(function(element){
        //Here it works because I use the temporary reference
        myCurrentInstance.elements.push(element);
    });
}

2)Concat

    <property name="getSequence" expression="get-property('registry','conf:repository/myVersion2.xml')" scope="default" type="OM"/>
<log level="custom">
    <property name="TestVersion::localEntry"    expression="$ctx:getSequence//localEntry"/>
</log>

3)调用序列

     <property name="seqName"
               expression="concat('s', $ctx:getSequence//localEntry)"
               scope="default"
               type="STRING"/>

4)执行测试

5)获取错误:

           <sequence key="get-property('seqName')"/>

所以问题似乎是“seqName”中存储的信息如何被序列读取为序列名而不是字符串。

我也试过

TID: [0] [ESB] [2015-07-08 10:27:36,325]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  TestVersion::info = setting property {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-07-08 10:27:36,327]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  TestVersion::localEntry = 1 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-07-08 10:27:36,327]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  TestVersion::Sequence = s1 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-07-08 10:27:36,327]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  TestVersion::info = filter1 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-07-08 10:27:36,327]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  TestVersion::info = LOG_S1_TRUE {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2015-07-08 10:27:36,329] ERROR {org.apache.synapse.mediators.base.SequenceMediator} -  Sequence named Value {name ='null', keyValue ='get-property('seqName')'} cannot be found {org.apache.synapse.mediators.base.SequenceMediator}

但这也行不通......

提前谢谢。

克劳迪奥

1 个答案:

答案 0 :(得分:0)

固定!

<sequence xmlns:local="ws.apache.org/ns/synapse" key="{get-property('seqName')}"/>

感谢大家!

此致 克劳迪奥