【发布时间】:2012-04-04 13:35:36
【问题描述】:
我已经设置了一个简单的动态路由器:
public String slip(String body, @Header(Exchange.SLIP_ENDPOINT) String previous) {
if (previous == null) {
return "mock:a";
}
else if (body.contains("status=2") ) {
return "mock:b";
}
else if (body.contains("status=3") ) {
return "mock:c";
}
// no more so return null
return null;
}
模拟 a、b、c 是带有自定义处理器的路由。
public void process(Exchange exchange) throws Exception {
String str_request = "";
String str_requestNew = "";
str_request = (String) exchange.getIn().getBody();
if(str_request.contains("status=1"))
str_requestNew = "status=2";
}
如何通过 Java DSL 在我的自定义处理器中更新路由之间的消息正文。 exchange.getOut().setBody(newreq); ?
我是否需要创建一个新的生产者并将消息发送回动态路由器? ProducerTemplate 模板 = exchange.getContext().createProducerTemplate(); 模板.sendBody(myDynamicRouterEndpoint, newreq); 或者如果通过方法 1 进行,我的路由器是否会接收新的主体。
或者我的逻辑有一个巨大的缺陷? :)
【问题讨论】:
标签: java apache-camel