362.8. Samples
例如,您可以使用如下内容:
from("activemq:My.Queue"). to("velocity:com/acme/MyResponse.vm");
使用 Velocity 模板来制定对 InOut 消息交换的消息的响应(其中有 JMSReplyTo
标头)。
如果要使用 InOnly 并消耗信息并将其发送到另一个目的地,您可以使用以下路由:
from("activemq:My.Queue"). to("velocity:com/acme/MyResponse.vm"). to("activemq:Another.Queue");
和 使用内容缓存,例如用于生产环境,其中 .vm
模板永远不会更改:
from("activemq:My.Queue"). to("velocity:com/acme/MyResponse.vm?contentCache=true"). to("activemq:Another.Queue");
以及基于文件的资源:
from("activemq:My.Queue"). to("velocity:file://myfolder/MyResponse.vm?contentCache=true"). to("activemq:Another.Queue");
在 Camel 2.1 中,可以指定组件应该通过标头动态使用的模板,例如:
from("direct:in"). setHeader("CamelVelocityResourceUri").constant("path/to/my/template.vm"). to("velocity:dummy?allowTemplateFromHeader=true");
在 Camel 2.1 中,可以直接将模板指定为组件应通过标头动态使用的标头,例如:
from("direct:in"). setHeader("CamelVelocityTemplate").constant("Hi this is a velocity template that can do templating ${body}"). to("velocity:dummy?allowTemplateFromHeader=true");
警告
启用 allowTemplateFromHeader
选项具有安全 RAMification。例如,如果标头包含不受信任的或用户派生内容,这最终可能会影响您的最终应用程序的信心和完整性,因此请小心使用这个选项。