109.8. サンプル
たとえば、次のようなものを使用できます。
from("activemq:My.Queue"). to("freemarker:com/acme/MyResponse.ftl");
FreeMarker テンプレートを使用して、InOut メッセージ交換 (JMSReplyTo
ヘッダーがある場合) のメッセージに対する応答を作成します。
InOnly を使用してメッセージを消費し、別の宛先に送信する場合は、次を使用できます。
from("activemq:My.Queue"). to("freemarker:com/acme/MyResponse.ftl"). to("activemq:Another.Queue");
また、.ftl
テンプレートをホットリロードする必要がある開発用途などで、コンテンツキャッシュを無効にするには:
from("activemq:My.Queue"). to("freemarker:com/acme/MyResponse.ftl?contentCache=false"). to("activemq:Another.Queue");
そしてファイルベースのリソース:
from("activemq:My.Queue"). to("freemarker:file://myfolder/MyResponse.ftl?contentCache=false"). to("activemq:Another.Queue");
Camel 2.1 では、コンポーネントがヘッダーを介して動的に使用するテンプレートを指定できます。たとえば、次のようになります。
from("direct:in"). setHeader(FreemarkerConstants.FREEMARKER_RESOURCE_URI).constant("path/to/my/template.ftl"). to("freemarker:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader
オプションを有効にすると、セキュリティー上の問題が発生します。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。