簡體   English   中英

如何通過駱駝路線中的bean集成方法調用設置標頭

[英]How to set headers from bean integration method call in a camel route

基於bean集成的方法調用來設置標頭需要幫助。 在我的應用程序中,我使用的是自定義POJO,在實際通過電線發送消息之前,我想在交換器上設置報頭,但是不想在bean中執行它,而是在我的spring處執行它DSL是為路由編寫的。 我知道通常方法返回的值作為消息的主體發送到下一個端點,但是我想發送作為標頭返回的值。 我已附上我需要的路線樣本,並希望:

<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>

您可以通過以下方式進行操作:

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

希望這可以幫助。

R.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM