Отклонить сообщение в Apache Camel

Надеюсь, это не звучит смешно, но как я могу отказаться от сообщения в Camel?

До сих пор я отправлял их в Log-Component, но между тем я даже не хочу регистрировать вывод.

В Верблюде есть конечная точка /dev/null?

Ответ 1

Вы можете использовать фильтр сообщений eip для фильтрации нежелательных сообщений. http://camel.apache.org/message-filter

Нет компонента dev/null,.

Также существует < stop/" > , который вы можете использовать на маршруте, и когда сообщение ударит его, оно перестанет продолжать маршрутизацию.

И самое близкое, что мы получили на dev/null, - это маршрут в журнал, где вы устанавливаете logLeve = OFF как вариант.

Ответ 2

С уважением к моему коллеге (кодовое название: cayha)...

Вы можете использовать Stub Component в качестве конечной точки верблюда, которая эквивалентна /dev/null.

например.

activemq:route?abc=xyz

становится

stub:activemq:route?abc=xyz

Хотя я не знаю о внутренней работе этого компонента (и если есть опасности для утечек памяти и т.д.), он работает для меня, и я не вижу никаких недостатков в этом.

Ответ 3

можно установить uri/mock-uri в конфигурацию, используя компонент свойств

<camelContext ...>
   <propertyPlaceholder id="properties" location="ref:myProperties"/>
</camelContext>

// properties
cool.end=mock:result
# cool.end=result

// route
from("direct:start").to("properties:{{cool.end}}");