2016-10-17 47 views
0

我有接收的形式的请求的骆驼REST端点: -骆驼 - 根据JSON请求体基于内容的路由

{"method" : "getHello"} 

基于在请求体中method字段中的值我想将请求路由到不同的路由。所以,我想这样的事情如下: -

from("jetty:http://localhost:8888/hello").unmarshal().json(JsonLibrary.Jackson, RouteRequest.class) 
      .choice() 
       .when(method(DynamicRouter.class, "route").isEqualTo("getHello")).to("stream:out") 
      .otherwise() 
       .log("Processing Failed"); 

动态路由器类象下面这样: -

public class DynamicRouter { 
    public String route(RouteRequest req) { 
     switch (req.getMethod()) { 
     case "getHello":    
      return "xxxx"; 
     } 
     return null; 
    } 
} 

即使我从route()返回xxxx但低于谓词是总为真,并是永远不会。其他

isEqualTo("getHello")).to("stream:out") 

有人可以让我知道我做错了什么吗?还有一些更好的办法,我想实现什么?

我对camel 2.16.3

回答

0

这是按预期工作。我的log4j.properties未在类路径中正确配置。所以日志没有显示出来。

+0

你应该刚刚删除问题 –