我有一个camel REST端点,它接收以下形式的请求: -
{"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;
}
}
即使我从xxxx
返回route()
,但下面的谓词总是评估为真,它永远不会去。其他
isEqualTo("getHello")).to("stream:out")
有人能让我知道我做错了什么吗?还有一些更好的方法来实现我的目标吗?
我在camel 2.16.3
答案 0 :(得分:1)
这是按预期工作的。我的log4j.properties
未在类路径上正确配置。所以日志没有显示出来。