When the WS endpoint parses an incoming operation invocation in POJO mode, it
automatically sets the operationName header to the name of the invoked
operation. You can then use this header to sort messages by operation name.
For example, the customer-ws-camel-cxf-pojo demonstration defines the
following route, which uses the content-based router pattern to sort incoming messages,
based on the operation name. The when predicates check the value of the
operationName header using simple language expressions, sorting messages into
invocations on the updateCustomer operation, the lookupCustomer
operation, or the getCustomerStatus operation.
<beans ...>
...
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="cxf:bean:customer-ws"/>
<choice>
<when>
<simple>${in.header.operationName} == 'updateCustomer'</simple>
<to uri="updateCustomer"/>
</when>
<when>
<simple>${in.header.operationName} == 'lookupCustomer'</simple>
<to uri="lookupCustomer"/>
</when>
<when>
<simple>${in.header.operationName} == 'getCustomerStatus'</simple>
<to uri="getCustomerStatus"/>
</when>
</choice>
</route>
</camelContext>
<bean id="updateCustomer"
class="com.fusesource.customerwscamelcxfpojo.UpdateCustomerProcessor"/>
<bean id="getCustomerStatus"
class="com.fusesource.customerwscamelcxfpojo.GetCustomerStatusProcessor"/>
<bean id="lookupCustomer"
class="com.fusesource.customerwscamelcxfpojo.LookupCustomerProcessor"/>
</beans>Note how the preceding route uses a convenient shortcut to divert each branch of the
choice DSL to a different processor bean. The DSL for sending exchanges to
producer endpoints (for example, <to
uri=") is integrated with the bean
registry: if the Destination"/>Destination does not resolve to an endpoint or a
component, the Destination is used as a bean ID to look up the
bean registry. In this example, the exchange is routed to processor beans (which implement
the org.apache.camel.Processor interface).








