Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 327. String Template Component
Available as of Camel version 1.2
The string-template: component allows you to process a message using a String Template. This can be ideal when using Templating to generate responses for requests.
Maven users will need to add the following dependency to their pom.xml
for this component:
327.1. URI format Copier lienLien copié sur presse-papiers!
string-template:templateName[?options]
string-template:templateName[?options]
Where templateName is the classpath-local URI of the template to invoke; or the complete URL of the remote template.
You can append query options to the URI in the following format, ?option=value&option=value&…
327.2. Options Copier lienLien copié sur presse-papiers!
The String Template component has no options.
The String Template endpoint is configured using URI syntax:
string-template:resourceUri
string-template:resourceUri
with the following path and query parameters:
327.2.1. Path Parameters (1 parameters): Copier lienLien copié sur presse-papiers!
Name | Description | Default | Type |
---|---|---|---|
resourceUri | Required Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will call a method on a bean to be used as the resource. For bean you can specify the method name after dot, eg bean:myBean.myMethod. | String |
327.2.2. Query Parameters (4 parameters): Copier lienLien copié sur presse-papiers!
Name | Description | Default | Type |
---|---|---|---|
contentCache (producer) | Sets whether to use resource content cache or not | false | boolean |
delimiterStart (producer) | The variable start delimiter | < | char |
delimiterStop (producer) | The variable end delimiter | > | char |
synchronous (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean |
327.3. Headers Copier lienLien copié sur presse-papiers!
Camel will store a reference to the resource in the message header with key, org.apache.camel.stringtemplate.resource
. The Resource is an org.springframework.core.io.Resource
object.
327.4. Hot reloading Copier lienLien copié sur presse-papiers!
The string template resource is by default hot-reloadable for both file and classpath resources (expanded jar). If you set contentCache=true
, Camel loads the resource only once and hot-reloading is not possible. This scenario can be used in production when the resource never changes.
327.5. StringTemplate Attributes Copier lienLien copié sur presse-papiers!
Since Camel 2.14, you can define the custom context map by setting the message header "CamelStringTemplateVariableMap" just like the below code.
327.6. Samples Copier lienLien copié sur presse-papiers!
For example you could use a string template as follows in order to formulate a response to a message:
from("activemq:My.Queue"). to("string-template:com/acme/MyResponse.tm");
from("activemq:My.Queue").
to("string-template:com/acme/MyResponse.tm");
327.7. The Email Sample Copier lienLien copié sur presse-papiers!
In this sample we want to use a string template to send an order confirmation email. The email template is laid out in StringTemplate
as: This example works for camel 2.11.0. If your camel version is less than 2.11.0, the variables should be started and ended with $.
And the java code is as follows:
327.8. See Also Copier lienLien copié sur presse-papiers!
- Configuring Camel
- Component
- Endpoint
- Getting Started