Apache Camel - укажите, какой конвертер использовать - PullRequest
0 голосов
/ 03 июля 2018

Я бы хотел определить два разных метода конвертера для Camel, которые бы брали один и тот же класс Object и возвращали один и тот же класс Object.

@Converter
public static Exchange fromStreamSourceToExchangeList1(StreamSource ss)

@Converter
public static Exchange fromStreamSourceToExchange2(StreamSource ss)

Проблема в том, что когда я пытаюсь вызвать конвертер, я не могу указать, какой из них использовать, только нужные типы:

from(starter).routeId(Feed).to(uri).convertBodyTo(StreamSource.class).convertBodyTo(Exchange.class).process(..)

Как указать конвертер с помощью convertBodyTo?

1 Ответ

0 голосов
/ 04 июля 2018

Camel поддерживает только 1 тип конвертера от -> до. Так что это не поддерживается. Когда Camel запускается и обнаруживает 2+ конвертеров одного типа, вы получаете журнал WARN и последний переопределяет самый старый (я думаю, что это поведение по умолчанию, но вы можете перенастроить, что делать).

Так что в этом случае НЕ используйте преобразователи типов, а используйте вызовы метода bean-компонента и вызывайте метод с нужным преобразованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...