Direct — provides a synchronous connection to any consumer in the same camelContext element
The direct: component provides direct, synchronous invocation of any consumers when a producer sends a message exchange. This endpoint can be used to connect existing routes in the same camel context.
![]() | Note |
|---|---|
The Seda component provides asynchronous invocation of any consumers when a producer sends a message exchange. |
![]() | Note |
|---|---|
The VM component provides connections between Camel contexts as long they run in the same JVM. |
Direct endpoints use the following URI format:
direct:someName[?options]Where someName is any string that uniquely identifies the
endpoint
| Name | Default Value | Description |
|---|---|---|
allowMultipleConsumers
|
true
|
@deprecated If set to false,
then when a second consumer is started on the endpoint, an
IllegalStateException is thrown. Will be removed in Camel 2.1: Direct endpoint does not support
multiple consumers. |
block
|
false
|
Apache Camel 2.11.1: If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. |
timeout
|
30000
|
Apache Camel 2.11.1: The timeout value to use if block is enabled. |
You can append query options to the URI in the following format,
?option=value&option=value&...
In the route below we use the direct component to link the two routes together:
from("activemq:queue:order.in")
.to("bean:orderServer?method=validate")
.to("direct:processOrder");
from("direct:processOrder")
.to("bean:orderService?method=process")
.to("activemq:queue:order.out");And the sample using spring DSL:
<route>
<from uri="activemq:queue:order.in"/>
<to uri="bean:orderService?method=validate"/>
<to uri="direct:processOrder"/>
</route>
<route>
<from uri="direct:processOrder"/>
<to uri="bean:orderService?method=process"/>
<to uri="activemq:queue:order.out"/>
</route>