2012-04-12 3 views
1

Meine Anforderung ist scheinbar unkompliziert. Ich muss ein einzelnes Verzeichnis abfragen und basierend auf dem Dateinamen der Eingabedatei, die ich brauche;Camel Route - Filter auf Dateiname und setze Header-Wert

a) Stellen Sie einen Header-Wert b) Richten Sie die Nachricht an eine bestimmte JMS-Warteschlange

ich ein paar verschiedene Möglichkeiten versucht haben, diese aber die followng sollte funktionieren .. offensichtlich für mich auf die Dokumentation acheive basiert es funktioniert nicht ...

 <from uri="file:[some input directory]"/> 

     <when> 
      <simple>${file:name} contains 'new'</simple> 
      <setHeader headerName="messageType"> 
       <constant>NEW</constant> 
      </setHeader> 
      <to uri="jmsbroker:queue:[queue for new items]"/> 
     </when> 
     <when> 
      <simple>${file:name} contains 'amend'</simple> 
      <setHeader headerName="messageType"> 
       <constant>AMEND</constant> 
      </setHeader> 
      <to uri="jmsbroker:queue:[queue for amended items]"/> 
     </when> 
     <when> 
      <simple>${file:name} contains 'other'</simple> 
      <setHeader headerName="messageType"> 
       <constant>OTHER</constant> 
      </setHeader> 
      <to uri="jmsbroker:queue:[queue for other]"/> 
     </when> 
     <otherwise> 
      <bean ref="deadLetterErrorHandler"/> 
     </otherwise> 

    </route> 

Jede Hilfe sehr geschätzt.

Grüße, Andy

Antwort

2

Sie <choice> um <when> conditionals fehlen (siehe content based router docs)

auch, Ihren <otherwise> Abschnitt sollte nur den Weg zu einer Fehler-Queue oder eine Ausnahme auslösen ...

versuche so etwas ...

<route> 
     <from uri="file:/tmp/inbox"/> 
     <choice> 
      <when> 
       <simple>${file:name} contains 'new'</simple> 
       <setHeader headerName="messageType"> 
        <constant>NEW</constant> 
       </setHeader> 
       <to uri="jmsbroker:queue:newItems"/> 
      </when> 
      <otherwise> 
       <to uri="jmsbroker:queue:errorQueue"/> 
      </otherwise> 
     </choice> 
    </route> 
Verwandte Themen