我如何在骆驼的DSL中表示这条路线:

   <camel:camelContext id="camel-context">
      <camel:route id="conductor-event" trace="true">
         <camel:from uri="direct:conductor/event"/>
         <camel:log message="handling conductor-event: id=${exchangeId}"/>
         <!-- execute each filter in sorted order -->
         <camel:bean ref="beaner.BProcessors"/>
         <camel:log message="after: [bprocessors]: id=${exchangeId}"/>
         <!-- map the event to a route -->
         <camel:recipientList parallelProcessing="false">
            <camel:method ref="beaner.Mappings" />
         </camel:recipientList>
         <camel:log message="after event mapping: id=${exchangeId}"/>
      </camel:route>
   </camel:camelContext>


到目前为止,我已经知道了,但是我得到了一个“原因:java.net.URISyntaxException:方案名称在索引0处的非法字符:%7BCamelToEndpoint = ...”:

    RouteDefinition routeDef = from("direct:conductor/event")
    .log( "handling conductor-event: id=${exchangeId}" )
    .beanRef( "beaner.BProcessors" )
    .log( "after: [bprocessors]: id=${exchangeId}" );
    ExpressionClause<RecipientListDefinition<RouteDefinition>> recipientList = routeDef.recipientList();
    recipientList.properties().setParallelProcessing( false );
    recipientList.method( "beaner.EventMappings" );
    routeDef.log( "after event mapping: id=${exchangeId}" );

最佳答案

这是JavaDSL中的路由...请注意,默认情况下收件人列表parallelProcessing为false ...

from("direct:conductor/event")
    .log("handling conductor-event: id=${exchangeId}")
    .beanRef("beaner.BProcessors")
    .log("after: [bprocessors]: id=${exchangeId}")
    .recipientList(bean("beaner.Mappings"))
    .log("after event mapping: id=${exchangeId}");

10-08 17:16