У меня есть собственный компонент Camel, упакованный в отдельную банку. Как сообщил здесь:Camel: org.apache.camel.ResolveEndpointFailedException: Компонент не найден со схемой
http://camel.apache.org/how-do-i-add-a-component.html
Я создал файл мета-INF/услуги/орг/апач/верблюд/компонент/водны (водно это имя схемы компонента), содержащий:
class=<full class name>
все работает Когда я запускаю тестовую программу автономно. Однако, когда я пытаюсь развернуть его в контейнер (ServiceMix, karaf) он не может разрешить имя компонента схемы:
org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route route7: Route(route7)[[From[aq:oprDequeuer]] -> [WireTap[properties:... because of Failed to resolve endpoint: aq://queue1 due to: No component found with scheme: aq
Кроме того, когда я зарегистрировать компонент в явном виде:
CamelContext context = getContext();
context.addComponent("aq", new AQComponent(context));
он работает отлично, включая ServiceMix.
Как вы развернули компонент? Вы можете проверить, загружен ли ваш маршрут после запуска пучка. –
Маршрут работает отлично, пока я явно ссылаюсь на развернутый компонент, как указано выше. –
Имеет ли в вашем комплекте компонент osgi экспорт службы org.apache.camel.spi.ComponentResolver; component = aq, как это делают другие компоненты верблюда? –