[英]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.