Добавить маршрут верблюда во время выполнения в Java
Как добавить маршрут верблюда во время выполнения на Java? Я нашел пример Grails, но я реализовал его на Java.
У моего приложенияContext.xml уже есть определенные предопределенные статические маршруты, и я хочу добавить к нему динамические маршруты во время выполнения. Является ли это возможным? Поскольку единственный способ включить динамический маршрут – написать route.xml, а затем загрузить определение маршрута в контекст. Как он будет работать на существующих статических маршрутах? Маршрут во время выполнения
- Отображение транзакции Spring в журнале
- Как тестировать блок памяти Spring-Jersey
- Спящий режим, настраивающий несколько источников данных и несколько сессионных заводов
- Как настроить сканирование файлов в приложении Spring Boot.exe
- Недействительность сессии JPA EntityManager
- AbstractMethodError при развертывании Spring 4.0 в Tomcat 6
- Как я могу удалить одноэлементную фасоль из ApplicationContext?
- $ {employee.id} из списка в JSP throws java.lang.NumberFormatException: для строки ввода: "id"
- Что делает java: comp / env / do?
- Как отправить весенний токен csrf из клиента Postman rest?
- Как добавить привязку к событию инициализации контекста приложения?
- Spring Boot - Как регистрировать все запросы и ответы с исключениями в одном месте?
- Class Conflict при запуске Java-проекта: ClassMetadataReadingVisitor имеет интерфейс org.springframework.asm.ClassVisitor как суперclass
вы можете просто вызвать несколько различных API-интерфейсов в CamelContext для добавления маршрутов … что-то вроде этого
context.addRoutes(new MyDynamcRouteBuilder(context, "direct:foo", "mock:foo")); .... private static final class MyDynamcRouteBuilder extends RouteBuilder { private final String from; private final String to; private MyDynamcRouteBuilder(CamelContext context, String from, String to) { super(context); this.from = from; this.to = to; } @Override public void configure() throws Exception { from(from).to(to); } }
см. этот модульный тест для полного примера …
@Himanshu, Пожалуйста, взгляните на динамические параметры (другими словами, прокрутку маршрута), которые могут помочь вам динамически маршрутизировать в разные «пункты назначения» на основе определенных условий.
Проверьте ссылку на помощь динамического маршрутизатора на сайте верблюда;
http://camel.apache.org/dynamic-router.html
from("direct:start") // use a bean as the dynamic router .dynamicRouter(method(DynamicRouterTest.class, "slip"));
И внутри метода скольжения;
/** * Use this method to compute dynamic where we should route next. * * @param body the message body * @return endpoints to go, or null to indicate the end */ public String slip(String body) { bodies.add(body); invoked++; if (invoked == 1) { return "mock:a"; } else if (invoked == 2) { return "mock:b,mock:c"; } else if (invoked == 3) { return "direct:foo"; } else if (invoked == 4) { return "mock:result"; } // no more so return null return null; }
Надеюсь, поможет…
Благодарю.