我是apache-camel的新手,我知道我遇到了一个问题,我想在我的uri定义中使用简单的表达式,但是我不知道怎么做。例如:
from("foo://bar").to("foo://bar?var=${header.varName}");
有没有办法使用这样的表达方式?
e4yzc0pl1#
伯恩哈德http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html使用收件人列表EIP模式,该模式允许您使用表达式计算动态URI。例如,使用简单表达式语言,如下所示:
recipientList(simple("freemarker://templateHome/${body.templateName}.ftl"))
kfgdxczn2#
另一种方法是在标头中使用“CamelXsltResourceUri”属性。
.setHeader("CamelXsltResourceUri",simple("xslt:<path>/<to>/<template>"))
收件人列表(简单(“自由标记://模板主页/${正文.模板名称}.ftl”))所选答案不适用,因为我必须使用自定义的urisolver
0mkxixxg3#
使用toD(),则可以使用动态URI。收件人列表用于多个目的地,而不是正确的EIP。但是,您可能需要避免使用simple()表达式创建过多不同的URL。请参阅:https://camel.apache.org/components/3.18.x/eips/toD-eip.html
toD()
simple()
3条答案
按热度按时间e4yzc0pl1#
伯恩哈德
http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html
使用收件人列表EIP模式,该模式允许您使用表达式计算动态URI。例如,使用简单表达式语言,如下所示:
kfgdxczn2#
另一种方法是在标头中使用“CamelXsltResourceUri”属性。
收件人列表(简单(“自由标记://模板主页/${正文.模板名称}.ftl”))
所选答案不适用,因为我必须使用自定义的urisolver
0mkxixxg3#
使用
toD()
,则可以使用动态URI。收件人列表用于多个目的地,而不是正确的EIP。但是,您可能需要避免使用
simple()
表达式创建过多不同的URL。请参阅:https://camel.apache.org/components/3.18.x/eips/toD-eip.html