基于JSON请求体的基于内容的驼峰路由
我有一个camel REST端点,它接收以下形式的请求:-基于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
{"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
未在类路径上正确配置。因此日志没有显示。您可能应该删除该问题