0

我在路由中使用 FTP 端点,当与 ftp 的连接由于某种原因(例如连接超时或套接字超时)失败时,我需要将路由详细信息记录到数据库。我使用轮询策略,并且该策略中的回滚方法在连接超时时被调用。但是回滚方法不允许我访问 RouteID 以将其记录到数据库中。

在做了一些原因之后,我发现了可以设置为 true 的标志 consumer.bridgeErrorHandler 以将异常传递给默认的错误处理程序。但这只是记录错误,并没有解决我如何获取路线详细信息的问题。

有人可以帮助您了解如何在回滚方法中访问 routeID,或者您可能有任何其他想法。

我正在使用 apache 骆驼 2.13.4

4

1 回答 1

0

您可以编写自己的错误处理程序并使用自定义逻辑来提取路由详细信息。例子:

onException(SocketTimeoutException.class)
    .beanRef("myCustomErrorBean", "manageMyError")


public void manageMyError(Exchange exchange) {
    CamelContext context = //get this from exchange or inject it via spring or something
    context.getRoutes();
    //iterate the routes and you can check for the routeIds and anything else you like
}
于 2016-04-29T13:23:00.373 回答