Apache Camel - Servlet组件 - 可能是绑定路径变量吗?

时间:2016-10-21 07:42:03

标签: apache-camel

我有一个servlet并使用camel路由来监听来自servlet的请求,如下所示:

 from("servlet:///basepath?matchOnUriPrefix=true")

没有问题,因为matchOnUriPrefix为true,路由成功侦听了对以下url模式的请求:

主机:端口/基本路径/ dynamicSubPath

我想要的是,有什么方法可以让路径变量(dynamicSubPath)绑定到交换属性?

我知道我可以得到如下路径:

 String path = exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class);

但我不想做这样的字符串解析。在spring mvc中,我可以将路径变量注入控制器,如下所示:

 @RequestMapping(path = "/basepath/{dynamicSubPath}", method = RequestMethod.GET)

然后可以获得dynamicSubPath变量,如下所示:

 @PathVariable String dynamicSubPath

camel servlet组件是否有类似的东西?

1 个答案:

答案 0 :(得分:1)

我不认为骆驼支持这一点。

默认情况下,所有请求标头和查询参数都将设置为邮件中的标头。请求的路径也存在(正如您通过标题Exchange.HTTP_PATH指出的那样)但不会分成其组件。

我担心你必须注册一个解析字符串的自定义处理器,并将路径变量设置为消息头或相应地交换属性。