2015-09-26 161 views
0

我想用一些路由與春天DSL駱駝。我無法將消息傳送到目的地。我知道我錯過了一些東西,請幫我弄清楚這個問題。 我已在deviceMessageRouteIdentifier標題如下基於駱駝內容的路由在春天DSL頭問題

Message outMsg = exchange.getOut(); 
    outMsg.setHeader("device_template_id","11"); 
    outMsg.setHeader("view_id", "2"); 

我的駱駝的路線是這裏

<camel:route> 
    <camel:from uri="direct:devicemessageprocessor"/> 
    <camel:bean ref="deviceMessageRouteIdentifier"/> 
    <camel:to uri="seda:deviceRouting"/> 
    </camel:route> 
      <camel:route> 
     <camel:from 
      uri="seda:deviceRouting?concurrentConsumers=10&amp;blockWhenFull=true&amp;purgeWhenStopping=true" /> 
     <choice> 
      <when> 
       <header>$device_template_id = '11'</header> 
       <to uri="direct:gen2Bridge" /> 
      </when> 
      <when> 
       <header>$view_id = '1'</header> 
       <to uri="direct:prediction" /> 
      </when> 
     </choice> 
    </camel:route> 

    <camel:route> 
     <camel:from uri="direct:gen2Bridge"/> 
     <camel:bean ref="gen2BridgeProcessor" /> 
    </camel:route> 

我能夠在deviceMessageRouteIdentifier達到,但不能提前

由於到達目的地gen2BridgeProcessor

回答

0

您應該使用簡單的語言作爲謂詞,而不是標題。標題僅用於查找標題值。

<header>$device_template_id = '11'</header> 

應該

<simple>${header.device_template_id} == '11'</simple> 

而平等經營==。見簡單的語言,瞭解更多詳情

+0

它的工作。謝謝 –