Java Netty不会在ConnectException上重试连接

Java Netty不会在ConnectException上重试连接,java,apache-camel,netty,Java,Apache Camel,Netty,我有两条骆驼路线: from("jms:queue:" + queue + "?transacted=true") .bean(interfaceProcessor, "prepareMessage") .to("direct:interfaceRoute") .end(); from("direct:interfaceRoute") .errorHandler(noErrorHandler()) .setExch

我有两条骆驼路线:

from("jms:queue:" + queue + "?transacted=true")
        .bean(interfaceProcessor, "prepareMessage")
        .to("direct:interfaceRoute")
        .end();

from("direct:interfaceRoute")
        .errorHandler(noErrorHandler())
        .setExchangePattern(ExchangePattern.OutIn)
        .to("netty:tcp://" + address + ":" + port + "?clientMode=true&requestTimeout=" + requestTimeout + "&disconnect=true")
        .bean(interfaceProcessor, "doStuff");
第一条路由在消息放入JMS队列时触发。然后在bean中处理消息,并将返回值放在单独的路由上,以将其发送到远程主机

当有东西进入
direct:interfaceRoute
时,Netty应该作为客户端打开到某个地址/端口的新连接。这工作正常,但当远程主机不可用时,我会收到一个
ConnectException
,并完全停止运行。如果发生这种情况,它需要不断重试,直到远程主机可用为止

我尝试使“上层”路由
进行事务处理
,并删除了路由上任何在套接字上进行实际发送的错误处理程序。这适用于
ReadTimeoutException
(远程主机未及时响应)。发生这种情况时,将重新发送消息,直到远程主机响应。我需要对
ConnectException
进行相同的处理


如何实现这一点?

目前不支持。但我们将在下一个版本中添加对此的支持。有一张关于这个的票


目前不支持它。但我们将在下一个版本中添加对此的支持。有一张关于这个的票


感谢您确认这一点,我很怀疑,因为我在文档中找不到任何与此相关的信息。我现在将编写自己的套接字,并密切关注这个问题。感谢您确认这一点,我很怀疑,因为我在文档中找不到任何与此相关的内容。现在我将编写自己的套接字,并密切关注这个问题。