Wso2 - последовательность вызовов с get-свойством
Это сценарий: - Три последовательности: s1, s2, s3 - Одна переменная, хранящаяся в реестре (localEntry), имеет значение 1 - Получить seqName с concat - Попробуйте вызвать последовательность с get-property
Что я сделал до сих пор:
1) Извлечь значение
<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>
2) Конкат
<property name="seqName"
expression="concat('s', $ctx:getSequence//localEntry)"
scope="default"
type="STRING"/>
3) Назовите последовательность
<sequence key="get-property('seqName')"/>
4) Выполнить тест
5) Получите ошибку:
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}
Таким образом, проблема заключается в том, что информация, хранящаяся в 'seqName', может быть прочитана последовательностью как имя последовательности, а не как строка.
Я пробовал также с
<sequence key="{get-property('seqName')}"/>
Но это тоже не работает...
Заранее спасибо.
Claudio
1 ответ
Решение
Исправлена!
<sequence xmlns:local="ws.apache.org/ns/synapse" key="{get-property('seqName')}"/>
Спасибо всем!
С уважением Клаудио