基于JSON请求体的基于内容的驼峰路由

基于JSON请求体的基于内容的驼峰路由,json,apache-camel,Json,Apache Camel,我有一个camel REST端点,它接收以下形式的请求:- {"method" : "getHello"} 根据请求正文中方法字段中的值,我希望将请求路由到不同的路由。所以我尝试了下面这样的方法:- from("jetty:http://localhost:8888/hello").unmarshal().json(JsonLibrary.Jackson, RouteRequest.class) .choice() .when(metho

我有一个camel REST端点,它接收以下形式的请求:-

{"method" : "getHello"}
根据请求正文中
方法
字段中的值,我希望将请求路由到不同的路由。所以我尝试了下面这样的方法:-

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
,但下面的谓词总是求值为true,它永远不会为true。否则

isEqualTo("getHello")).to("stream:out")
有人能告诉我我做错了什么吗?还有没有更好的方法来实现我的目标


我使用的是驼峰2.16.3

这正按预期工作。我的
log4j.properties
未在类路径上正确配置。因此日志没有显示。

您可能应该删除该问题