Java RabbitMQ和Camel 2.20即使在autoAck=false时也会自动确认
我不熟悉Camel和RabbitMQ,正在用下面的方法编写一个简单的消费者Java RabbitMQ和Camel 2.20即使在autoAck=false时也会自动确认,java,rabbitmq,apache-camel,Java,Rabbitmq,Apache Camel,我不熟悉Camel和RabbitMQ,正在用下面的方法编写一个简单的消费者 from("rabbitmq://127.0.0.1?username=admin&password=admin&queue=TestQueue&routingKey=TestQueue&exchangeName=''&autoAck=false&autoDelete=false").delay(3000).bean(exceptionBean,"throwGeneri
from("rabbitmq://127.0.0.1?username=admin&password=admin&queue=TestQueue&routingKey=TestQueue&exchangeName=''&autoAck=false&autoDelete=false").delay(3000).bean(exceptionBean,"throwGenericException").log(LoggingLevel.INFO, "Receiving from the Queue: ${id}");
Bean没有代码,只是抛出一个异常。我的问题是,即使在从bean抛出异常之后,消息也会在队列中自动确认
欢迎使用任何指针。可能您的异常是因为参数exchangeName不存在 尝试按以下方式调用您的RabbitMQ:
from("rabbitmq:{{RABBITMQ_ADDRESS}}/{{RABBITMQ_EXCHANGE}}?routingKey={{RABBITMQ_QUEUE_IN_ROUTING_KEY}}&username={{RABBITMQ_USERNAME}}&password={{RABBITMQ_PSWD}}&autoDelete=false&queue={{RABBITMQ_QUEUE_IN}}")
查看此链接
路由需要将setFaultBody设置为true才能不自动确认。试试上面的例子,它会给你一个想法
问候
Aravind试试骆驼2.20.2码,这是否仍然相关?我在org.apache.camel rabbitmq 2.20.2上准备好了。您好,您找到了解决方案吗?