2016-05-05 6 views
0

Hilfe zum Festlegen von Headern basierend auf dem Methodenaufruf aus der Bean-Integration. innerhalb meiner Anwendung benutze ich ein benutzerdefiniertes POJO und es gibt, bevor ich tatsächlich die Nachricht über die Leitung senden möchte ich die Header auf den Austausch setzen, aber ich möchte es nicht in meiner Bean tun und lieber tun, wo meine Frühling DSL ist für die Route geschrieben. Ich weiß, dass in der Regel der von der Methode zurückgegebene Wert als Text für die Nachricht an den nächsten Endpunkt gesendet wird, aber ich möchte als Header zurückgegebene Werte senden. Ich habe eine Probe meiner Strecke angebracht sein muss, und wollen:So legen Sie Header aus dem Aufruf der Bean-Integrationsmethode in einer Kamel-Route fest

<route id="someRoute"> 
<from ref="InboundAsyncEndpoint" /> 
<to uri="bean:validatorBean?method=validateMessageInternals(MyCostomMessagePojo obj)" /> 
<choice> 
    <when> 
     <simple> 
      ${body.getMetaData().getFinalDestinationName()} == 'AMQEndpoint' 
     </simple> 
     <to uri="bean:payloadAndHeaderExtractor?extractHeader(MyCostomMessagePojo obj)" /> 
     <to uri="bean:payloadAndHeaderExtractor?extractPayload(MyCostomMessagePojo obj)" /> <!-- i want the headers being set on the exchange from the map that is returnd from the previous bean and method --> 
     <to uri="activemq:someQueue" 
    </when> 
    <otherwise> 
     ... 
     ... 
    </otherwise> 
</choice> 

Antwort

0

Sie können auf folgende Weise tun:

<setHeader headerName="YOUR_HEADER"> 
    <simple>bean:payloadAndHeaderExtractor?extractHeader(MyCostomMessagePojo obj)</simple> 
</setHeader> 

Hoffnung, das hilft.

R.

Verwandte Themen