+-
java-了解Apache Camel动态路由
我已经设置了一个简单的动态路由器:

    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();
template.sendBody(myDynamicRouterEndpoint,newreq);
如果通过方法1进行操作,我的路由器会否接起新的机体.

还是我的逻辑存在巨大缺陷? 🙂

最佳答案
您可以按照1中的描述进行操作.

如果使用bean组件,则更加简单.然后,您可以使用一个简单的java方法来读取和设置主体:

public String doSomething(String body){
}

这将在参数中获得主体,返回值将是新的主体.这也使您的咖啡豆独立于骆驼.

点击查看更多相关文章

转载注明原文:java-了解Apache Camel动态路由 - 乐贴网