Пример маршрута:
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();
Отправка запроса на URL-адрес прослушивателя без параметра myid выдает org.apache.camel.processor.idempotent.NoMessageIdException: идентификатор сообщения не может быть найден с использованием выражения: заголовок (myid) при обмене сообщениями: Exchange[Message: [Body is instance of org .apache.camel.StreamCache]]
никогда не переходя из onException.