You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

ProducerTemplate

The ProducerTemplate interface allows you to send message exchanges to endpoints in a variety of different ways to make it easy to work with Camel Endpoint instances from Java code.

It can be configured with a default endpoint if you just want to send lots of messages to the same endpoint; or you can specify an Endpoint or URI as the first parameter.

The sendBody() method allows you to send any object to an endpoint easily.

ProducerTemplate template;

// send to default endpoint
template.sendBody("<hello>world!</hello>");

// send to a specific queue
template.sendBody("activemq:MyQueue", "<hello>world!</hello>");

// send with a body and header 
template.sendBodyAndHeader("activemq:MyQueue", 
    "CustomerRating", "Gold", 
   "<hello>world!</hello>");

You can also supply an Exchange or a Processor to customize the exchange

request*() methods

The send*() methods use the default Message Exchange Pattern (InOnly, InOut etc) as the endpoint. If you want to explicitly perform a request/response (InOut) you can use the request*() methods instead of the send*() methods.

e.g. lets invoke an endpoint and get the response

Object response = template.requestBody("<hello/>");
  • No labels