使用apache camel

时间:2016-04-28 21:15:00

标签: apache-camel camel-ftp

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

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

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

我正在使用apache camel 2.13.4

1 个答案:

答案 0 :(得分: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
}