Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RabbitMQ和Camel 2.20即使在autoAck=false时也会自动确认_Java_Rabbitmq_Apache Camel - Fatal编程技术网

Java RabbitMQ和Camel 2.20即使在autoAck=false时也会自动确认

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

我不熟悉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,"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上准备好了。您好,您找到了解决方案吗?