Я использую Talend Open Studio для ESB (7.2.1) для создания Apache верблюжьих маршрутов. Несколько маршрутов содержатся в одном проекте, а также несколько bean-компонентов для этих маршрутов.
Некоторые маршруты совместно используют некоторые bean-компоненты, и со временем может случиться, что маршрут станет несовместимым с новейшей версией bean-компонента, но также и в вроде того, что несовместимость проявляется только во время выполнения и даже только в конкретном случае c.
Поэтому мой вопрос: можно ли указать точную версию компонента (поскольку все необходимые версии хранятся в проект Talend), на который ссылаются? Я думаю, что это может быть возможно в компоненте cBean , в компоненте cBeanRegister , в конфигурации Spring или в конфигурации зависимостей маршрута? - но не нашел никакой документации или информации по этому вопросу.
Моя точная проблема заключается в этом исключении:
org. apache .camel.component.bean.AmbiguousMethodCallException: Ambiguous возможны вызовы методов: [publi c stati c void beans.ArticleGroupHandler.handleGroup (org. apache .camel.Exchange), publi c stati c void beans.ArticleGroupHandler.handleNavisionGroups (org. apache .camel.Exchange)].
Сначала в компоненте существовал только метод public static void beans.ArticleGroupHandler.handleGroup(org.apache.camel.Exchange)
, поэтому моё использование компонента cBean без спецификации метода работало. После обновления по другому маршруту был добавлен метод public static void beans.ArticleGroupHandler.handleNavisionGroups(org.apache.camel.Exchange)
, и новая сборка первого маршрута привела к вышеуказанному исключению во время выполнения.
Я знаю, что могу решить это исключение, указав точный метод использовать, но хочу знать, смогу ли я обойти подобные проблемы в будущем, указав версию компонента.