Apache Camel RouteBuilder не запускает configure ()

Когда я пытаюсь настроить новую прямую конечную точку в Apache Camel, метод configure () моего RouteBuilder не запускается, и я не могу понять причину.

У меня есть метод configureRESTRoute (), который я реализовал следующим образом:

private RouteBuilder configureRESTRoute(DataSource ds) {
    RouteBuilder restRoute = new RESTRoute() {
        @Override
        public void configure() throws Exception {
            from("direct:" + ds.getConfig().get("SOURCENAME"))
                    .log("----Configuring new REST Route----: " + "direct:" + ds.getConfig().get("SOURCENAME"))
                    .setHeader(Exchange.HTTP_PATH, simple((String) ds.getConfig().get("HTTP_PATH")))
                    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
                    .to("http4:" + ds.getConfig().get("HTTP_HOST"))
                    .log("----Successfully configured----");
        }
    };
    return restRoute;
}

Класс DataSource содержит карту деталей конфигурации для конкретного источника данных. В этом методе я пытаюсь построить Маршрут, который позже добавляется в CamelContext. В настоящее время он возвращает пустой маршрут, потому что метод configure () пропускается. К сожалению, не генерируется исключение или какое-либо другое сообщение об ошибке.

Метод configure() будет вызываться после добавления RouteBuilder в контекст. Вызывается как часть метода Context#addRoutes.

Bedla 19.05.2018 22:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
846
1

Ответы 1

Чтобы Camel выбрал ваш маршрут, получите объект CamelContext и вызовите для него метод addRoutes():

Итак, определите свои новые маршруты в RouteBuilder:

public class RESTRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("direct:...").to("...");
    }
}

затем вызовите addRoutes() и передайте свой RouteBuilder:

context.addRoutes(new RESTRoute());

Если вы новичок в Camel, попробуйте начать с архетипа Maven, такого как camel-archetype-java, поскольку этот шаблонный материал настроен для вас.

Другие вопросы по теме