Apache Camel - как передать параметр запроса в скоростной шаблон - PullRequest
0 голосов
/ 17 мая 2018

У меня есть верблюжные (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).

TIA.

...