Camel onException没有捕获idempotentConsumer的NoMessageIdException?

时间:2014-10-19 17:32:00

标签: apache-camel idempotent onexception

示例路线:

onException(Exception.class)
.process(new Processor() {
    @Override
    public void process(Exchange exchange) throws Exception {
        System.out.println("it works");
        }
    })
    .handled(true);
from("jetty://http://0.0.0.0:8888/test")
.idempotentConsumer(header("myid"), MemoryIdempotentRepository.memoryIdempotentRepository(1000000))
.skipDuplicate(false)
.filter(property(Exchange.DUPLICATE_MESSAGE).isEqualTo(true))
    .throwException(new DuplicateRequestException())
.end();

向没有myid参数的侦听器URL发送请求会抛出org.apache.camel.processor.idempotent.NoMessageIdException:在消息交换时使用表达式:header(myid)找不到消息ID:Exchange [消息:[正文是org.apache.camel.StreamCache的实例]]

没有从onException传递。

1 个答案:

答案 0 :(得分:1)

是的,这实际上是Apache Camel中的一个错误。我已经记录了一张票,以便在下一个版本中修复此问题。