Apache Camel - как передать параметр запроса в скоростной шаблон
У меня есть верблюжий (2.16.4) маршруты, описанные в Spring DSL, как это
...
<from uri="restlet:http://localhost:8081/service_url?restletMethod=get"/>
<to uri="velocity:{{templates.uri}}/stub-answer.vm{{velocity.opts}}"/>
...
Типичный запрос как http://localhost:8081/service_url?param1=123¶m2=hello
Я хочу получить значение параметра запроса запроса с именем param2 от конечной точки покоя до конечной точки скорости (файл stub-answer.vm)
Согласно документации, Camel должен передавать каждый параметр из запроса в заголовках сообщений, т.е. ${headers.param2}
, Работает нормально с параметрами пути (/service_url/{param3}
), но не работает с параметрами запроса.
Я обнаружил, что все параметры запроса передаются в виде строки в заголовок CamelHttpQuery. И мне удалось извлечь его из файла.vm с помощью языка Velocity, вот так
#set($splittedParams = $headers.CamelHttpQuery.split("\/"))
#set($splittedParamsSize = $splittedParams.size())
#set($param2Index = $splittedParamsSize - 1)
#set($param2 = $splittedParams[$param2Index])
Но это обманка, и я считаю, что есть более простой способ получить параметр запроса по имени (может быть, с некоторой конфигурацией маршрута в xml).
ТИА.