簡體   English   中英

Apache camel onException 向原始消息添加錯誤詳細信息

[英]Apache camel onException adding error details to the original message

我已將此異常處理添加到駱駝路線。

 .onException(BeanCreationException.class, ValidationException.class)
     .handled(true)
     .process(new OnExceptionProcessor())
     .to("errorQueue0").id("errorQueue")
     .end()
public class OnExceptionProcessor implements Processor {
    @Override
    public void process(Exchange exchange) throws Exception {
        Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
        exchange.getIn().setHeader("FailedBecause", cause.getMessage());
    }
}

當我從錯誤隊列讀回這條消息時,我找不到這個標頭。 關於如何將錯誤詳細信息與原始消息一起添加到錯誤隊列的任何想法

這可能是上下文問題,因為您位於錯誤處理程序調用的處理器中

作為替代方法,您可以返回 String 值以您的處理器方法的標頭中設置 順便說一下,這也提高了處理器的可測試性

然后你可以使用這個返回值直接在錯誤處理程序路由中設置頭

.setHeader("FailedBecause", method(new OnExceptionProcessor()))

暫無
暫無

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

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