362.8. 샘플

예를 들어 다음과 같은 것을 사용할 수 있습니다.

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 옵션을 활성화하면 보안 문제가 있습니다. 예를 들어 헤더에 신뢰할 수 없거나 사용자 파생 콘텐츠가 포함된 경우 궁극적으로 최종 애플리케이션의 확신과 무결성에 영향을 미칠 수 있으므로 이 옵션을 주의해서 사용하십시오.