#apache-camel #hawtio
#apache-camel #hawtio
Вопрос:
Я использую Hawtio с Camel версии 2.17.1 для управления маршрутами в контексте camel. Когда я останавливаю, а затем перезапускаю один из своих маршрутов с помощью Hawtio, я сталкиваюсь с необычной проблемой, когда сообщение, по-видимому, не знает о своем классе.
Сообщения считываются из очереди и все начинаются как строки. Затем они успешно удаляются с помощью схемы xsd. Во время выбора тело всегда оказывается неизвестным типом, несмотря на то, что до этого оно не было привязано к правильному классу. Как ни странно, затем используется соответствующий преобразователь пользовательских типов для преобразования сообщения в ожидаемый тип.
<route id="responseRoute" autoStartup="false">
<from uri="{{response.from.uri}} />
<transacted ref="PROPAGATION_REQUIRED_CONSUMER"/>
// class is String
<unmarshal ref="unmarshalJAXB" />
// class is type.A
<choice>
<when>
<simple>${body} is 'type.A'</simple>
<log message="Body is type A" />
<convertBodyTo type="type.C" />
</when>
<when>
<simple>${body} is 'type.B'</simple>
<log message="Body is type B" />
<convertBodyTo type="type.C" />
</when>
<otherwise>
// always this option - unknown type
<log message="Body is unknown type" />
<convertBodyTo type="type.C" />
</otherwise>
</choice>
<marshal ref="marshalJAXB" />
<to uri="{{response.to.uri}}" />
</route>
Если для параметра автозапуска установлено значение true, то каждое сообщение обрабатывается успешно,
нажимая правильную опцию в блоке выбора.
Почему запуск маршрута с помощью Hawtio останавливает тело сообщения, зная, к какому классу оно относится? Есть ли способ решить эту проблему?
Комментарии:
1. Не могли бы вы предоставить дамп ошибки?
2. К сожалению, ошибок нет.