Camel onException не перехватывает NoMessageIdException idempotentConsumer?

Пример маршрута:

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.


person Nazaret K.    schedule 19.10.2014    source источник
comment
Вы хотите сказать, что он не печатает, он работает?   -  person Dakota Brown    schedule 20.10.2014


Ответы (1)


Да, на самом деле это ошибка в Apache Camel. Я зарегистрировал билет, чтобы исправить это в следующих выпусках.

person Claus Ibsen    schedule 01.11.2014