@Himanshu, Lütfen cerro'ya göre farklı 'hedeflere' dinamik olarak yönlendirmenize yardımcı olabilecek dinamik rota seçeneklerine (başka bir deyişle yönlendirme slipine) bakın. tain durumu.
Devel sitesindeki dinamik yönlendirici yardım bağlantısını kontrol edin;
from("direct:start")
// use a bean as the dynamic router
.dynamicRouter(method(DynamicRouterTest.class, "slip"));
Ve kayma yöntemi içinde
http://camel.apache.org/dynamic-router.html
;
/**
* Use this method to compute dynamic where we should route next.
*
* @param body the message body
* @return endpoints to go, or <tt>null</tt> 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;
}
... o yardımcı olur
Teşekkür Umut.
Cevabınız için teşekkürler, ancak bunu daha yapılandırılabilir bir şekilde yapıyorum. Benim durumumda, dışsal bir uygulama benim uygulamamın yollarına karar verebilir, bu problem için daha fazla yapılandırılabilir bir çözüm arıyorum. –
Yukarıdaki çözüm bana oldukça yapılandırılabilir gözüküyor. Tam yolun dinamik olmasını ister misiniz? Sonra sadece xml kullanabilirsiniz. –
Tüm Java kodları, bu yüzden yapılandırma yönteminin içinde kullanabilirsiniz .. else, diğer yöntemleri arayın vb. Yani DSL'i çok dinamik yapabilirsiniz. Ayrıca, kullanacağınız X sınıfı şablon sınıfına da sahip olabilirsiniz. Ayrıca, RouteBuilder'da DSL'i sevmiyorsanız, doğrudan model paketindeki sınıfları kullanarak rotalar oluşturabilirsiniz. –