第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Apache Camel:如何在拆分和后續(xù)異常后在多個交易所之間保留屬性或標頭?

Apache Camel:如何在拆分和后續(xù)異常后在多個交易所之間保留屬性或標頭?

慕蓋茨4494581 2022-09-01 17:37:19
我有一條復雜的路線,如下所示(部分):.when(header("KEY_1").isNull()).choice()    .when(header("KEY_2").isNull())        .split().method(SplitExample.class, "invokeSplitter").streaming().parallelProcessing().executorService(threadPoolExecutor)   // first split                              .policy(requires_new)                .bean(SplitExample.class, "enrich")                .bean(persister,"populateRecordAndXRef")                .bean(initializer, "initialize")                .bean(validator, "validateInMsg")                .bean(suppressResolver, "resolve")                .choice()                    .when(header("KEY_3").isNull())                        .bean(MsgConverter.class,"doInvoke" )  // #1 property or header set here                        .split(body()) // second split                        .bean(validator, "validateOutMsg")                                                         .to(toURI.toArray(new String[ toURI.size()]))                        .process(new Processor() {                            @Override                            public void process(Exchange exchange) throws Exception {                                System.out.println(exchange.getException());  // #2 queue server is shut down here so that transaction failure occurs                                                                   }我還定義了以下異常策略: onException(JMSException.class)            .handled(true)    .process(new QueueOperationFailureProcessor()); // #3 property or header should be accessible here現(xiàn)在,我的目的是將 Bean 設置為 Exchange 屬性(“RECOVERY_DETAIL”),并在 中檢索相同的 Bean。MsgConverter (#1)QueueOperationFailureProcessor (#3)通過調(diào)試,我可以看到 RECOVERY_DETAIL.在 JMSException 上,當我的異常策略啟動時,我想檢索 中的屬性(“RECOVERY_DETAIL”)。in-line processor (#2)QueueOperationFailureProcessor (#3)但碰巧的是 - 可用的交易所與可用的交易所不同,并且該屬性(“RECOVERY_DETAIL”)在哪里可以找到。QueueOperationFailureProcessor (#3)in-line processor (#2)請幫幫我。附言:我的駱駝版本是2.16.0,我可能無法使用任何需要版本升級的解決方案。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

嘗試在拆分器上進行設置,您可能會發(fā)現(xiàn)異常會按預期傳播。.shareUnitOfWork()



查看完整回答
反對 回復 2022-09-01
?
白衣染霜花

TA貢獻1796條經(jīng)驗 獲得超10個贊

在拆分中發(fā)生的異??赡懿粫恢眰鞑サ侥?.您可以嘗試定義內(nèi)部拆分來處理此錯誤。onExceptiondoTry/doCatch



查看完整回答
反對 回復 2022-09-01
?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

只是猜測,但由于屬性創(chuàng)建和屬性使用之間存在拆分器,因此這可能是丟失屬性的原因。

拆分器使用現(xiàn)有消息的一部分創(chuàng)建新消息。這里的關鍵問題是:Camel是否將所有屬性和標頭從傳入消息復制到所有拆分的傳出消息?

您可以通過在拆分器中移動屬性的創(chuàng)建來輕松嘗試此操作。如果該屬性在異常處理程序中可用,則拆分器是負責任的。

在這種情況下,您可以自己實現(xiàn)Splitter邏輯(只是一個Java Bean,請參閱Splitter文檔的“使用Pojo進行拆分”一章)。您的實現(xiàn)可以考慮屬性。


查看完整回答
反對 回復 2022-09-01
  • 3 回答
  • 0 關注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號