THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
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 uri as the first parameter.
The sendBody() method allows you to send any object to an endpoint easily.
Code Block |
---|
ProducerTemplate template = exchange.getContext().createProducerTemplate(); // 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<hello>world!</hello>", "GoldCustomerRating", "<hello>world!</hello>"Gold"); |
You can also supply an Exchange or a Processor to customize the exchange
...
e.g. lets invoke an endpoint and get the response
Code Block |
---|
Object response = template.requestBody("<hello/>"); // you can cast the response directly String ret = template.requestBody("<hello/>", String.class); // or specify the endpoint directly String ret = template.requestBody("cxf:bean:HelloWorldService", "<hello/>", String.class); |
Fluent interface (camel 2.18.0)
The FluentProducerTemplate provides a fluent syntax to ProducerTemplate,, examples:
Code Block | ||||
---|---|---|---|---|
| ||||
Integer result = FluentProducerTemplate.on(context)
.withHeader("key-1", "value-1")
.withHeader("key-2", "value-2")
.withBody("Hello")
.to("direct:inout")
.request(Integer.class) |
Code Block | ||||
---|---|---|---|---|
| ||||
Integer result = FluentProducerTemplate.on(context)
.withProcessor(exchange -> exchange.getIn().setBody("Hello World"))
.to("direct:exception")
.request(Integer.class); |
Code Block | ||||
---|---|---|---|---|
| ||||
Object result = FluentProducerTemplate.on(context) .withTemplateCustomizer( template -> { template.setExecutorService(myExecutor); template.setMaximumCacheSize(10); } ) .withBody("the body") .to("direct:start") .request() |