В качестве минимального примера рассмотрим обмен с несколькими значениями заголовков, такими как:
- header.test0
- header.test1
- header.test2
- ...
Я понимаю, что такие пронумерованные поля заголовка не идеальны, но я не могу это изменить.
В прошлом (до Верблюд 2.17) Мне удалось l oop для следующих значений (XML DSL):
<loop>
<simple>${header.myCounter}</simple>
<log message="${header.test${header.CamelLoopIndex}}"/>
</loop>
Однако после обновления до Camel 2.21 это приводит к следующей ошибке: org.apache.camel.language.simple.types.SimpleIllegalSyntaxException: expected symbol functionEnd but was eol at location 16 test${header
В документации говорится, что простые выражения все еще могут быть вложенными, поэтому я не уверен, почему он перестал работать, и как я могу это исправить. Я полагаю, что моя проблема вызвана тем фактом, что я объединяю текст stati c со значениями Dynami c, в то время как в существующих примерах в качестве имени всегда используется полное значение Dynami c.
Так что мой вопрос является, как правильно читать значения header.test0, header.test1, ... в al oop динамически?