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&param2=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).

ТИА.

0 ответов

Другие вопросы по тегам