【发布时间】:2016-02-09 20:56:09
【问题描述】:
我有很多速度模板可以重复用于另一个项目(使用 Camel)。
Reading the documentation我无法理解如何在速度上下文中插入一些自定义对象...我的模板需要两个或三个不同的工具;我看到我可以在标题中设置这些对象,但这样我必须更改我的模板,当然我会避免这种情况。
所以基本上在我的模板中我有类似的东西
$xpath.blablabla
$anotherTool.doSomething
以前(在另一个项目中)我在 java 类中设置了这些对象,现在我可以创建一个处理器来进行整个速度处理,但我想有一种快速的方法可以避免编码。
【问题讨论】:
-
我只是这样做了,你首先运行处理器(为你需要的所有内容设置标题),然后调用
to("velocity:mytemplate.vm")。我不确定是否有不同的方法,但这种方法对我来说确实很好。 -
我没明白...如果您使用处理器,那么所有速度工作都将放在那里...您如何(在处理器中)创建一个velocityContext,用您的对象,然后将该速度上下文传递给 velocity:mytemplate 端点?我在 VelocityEndpoint 源代码中看到创建了一个新的 VelocityContext 实例
-
在我的示例中,我将相关值放入骆驼
Exchange的标题中。所以我的Processor确实是exchange.getIn().setHeader("abc", "123")...camel-velocity 组件中一定有一些魔力,它使camel 标头在速度上下文中可以作为${header.abc}使用。 -
好的,我的问题是在我的模板中我有 ${abc} 而不是 ${header.abc}
标签: java apache-camel velocity