示例路线:
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传递。
答案 0 :(得分:1)
是的,这实际上是Apache Camel中的一个错误。我已经记录了一张票,以便在下一个版本中修复此问题。