Apache Camel - 如何将查询参数传递给力度模板

时间:2018-05-17 14:23:57

标签: apache-camel velocity http-request-parameters

我已经在Spring DSL中描述了骆驼(2.16.4)这样的路线

...
<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,从rest端点到速度端点(文件stub-answer.vm)

根据文档,Camel应该在消息头中传递来自请求的每个参数,即${headers.param2}。它适用于路径参数(/service_url/{param3}),但不适用于查询参数。

我发现所有查询参数都作为字符串传递给CamelHttpQuery标头。我已经设法在Velocity语言的帮助下将其解压缩到.vm文件中,就像这样

#set($splittedParams = $headers.CamelHttpQuery.split("\/"))
#set($splittedParamsSize = $splittedParams.size())
#set($param2Index = $splittedParamsSize - 1)
#set($param2 = $splittedParams[$param2Index])

但它是一个ducktape,我相信有更多直接的方式来获取请求参数的名称(可能在xml中有一些路由配置)。

TIA。

0 个答案:

没有答案