当前位置: 首页 > 知识库问答 >
问题:

使用apache camel在连接失败时访问FTP使用者中的路由ID

章昱
2023-03-14

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

在做了一些解释之后,我找到了标志consumer.BridgeErrorHandler,它可以设置为true,以便将异常传递给默认的错误处理程序。但这只是记录错误,并不能解决我如何获得路线细节的问题。

共有1个答案

孙俊彦
2023-03-14

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

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
}
 类似资料:
  • 我正在使用套接字。io,应用程序由AWS提供。我收到一个浏览器控制台错误: websocket.js:54 WebSocket 连接到 'wss://www.tidee.com/socket.io/?EIO=4 客户代码: 服务器代码: 在 AWS 中,安全组接受端口 443,负载均衡器侦听端口 443。 应用程序在本地运行时工作(状态 101),并使用 协议。

  • 我一直在使用ftp在android应用程序的服务器上上传图像,我正在使用以下代码连接ftp。它在Wi-fi中工作正常,但如果我切换到3G或2G连接,就会出现连接超时错误。那么,你能告诉我如何处理这种情况吗。我的客户在Veriozon也面临这个问题,Sprint,ATT网络提供商。它的iPhone版本在所有网络中都运行良好。 代码: 错误: JAVA网ConnectException:无法连接到主机

  • 我有一个使用Mongo数据库的Node express服务器。 我正在尝试使用为它们中的每一个创建一个容器。 这是我的

  • 警告:mysqli::mysqli():(HY000/1045):拒绝访问/home/domainname/public_html/autopublish/test.php中的用户'usernam'@'localhost'(使用密码:YES)。第8行连接失败:拒绝访问用户'usernam'@'localhost'(使用密码:YES)

  • 本文向大家介绍java使用apache commons连接ftp修改ftp文件名失败原因,包括了java使用apache commons连接ftp修改ftp文件名失败原因的使用技巧和注意事项,需要的朋友参考一下 今天被ftp上中文名修改坑了好久 项目用的是 apache commons 里的 FtpClient 实现的对ftp文件的上传下载操作,今天增加了业务要修改ftp上的文件名,然后就一直的报

  • 我正面临这个错误。尝试了其他线程中给出的所有解决方案...创建一个新的user@localhost并授予其特权。但对我没什么用... 这是我的代码..