【发布时间】:2020-07-13 17:28:30
【问题描述】:
我有一条调用外部休息服务的路线。我已经配置了我的错误处理程序,如下所示。
errorHandler(deadLetterChannel("jms:dlc").maximumRedeliveries(3));
我想做什么:
如果连接外部api失败,我想重试3次,然后发送到deadLetterChannel
如果 api 调用正常,我想检查状态码,记录响应,然后将消息发送到 deadLetterChannel。
为此,我将 throwExceptionOnFailure 设置为 false。
在我的路线中,我有一个 bean 作为最后一个端点。此 bean 接收来自外部端点的响应并检查状态。
void process(Exchange exchange){
//check http status code
//if not success
exchange.setProperty(Exchange.ROUTE_STOP,true);
//sendToDeadLetterQueue;
}
我的问题是即使我能够连接到 API,也会发生重新交付。我希望重新交付会发生错误。但我正在处理响应并将交换设置为停止。
我可以停止从我的 bean 中重新交付吗?
【问题讨论】:
标签: java apache-camel