提取 URI 后缀作为方法参数

Extract URI suffix as method parameter

我目前定义了以下路线:

from("servlet:///my-api/v1/{param1}?matchOnUriPrefix=true")
        .unmarshal().json(JsonLibrary.Jackson, Map.class)
        .bean(myController, "myMethod(${in.headers.param1})")
        .setHeader(Exchange.CONTENT_TYPE, simple("application/xml"));

这样不行,当消息到达myController.class时,param1为空。

有没有办法捕获请求的 URI 上的后缀,然后将其作为参数传递给 bean 方法?

我知道如果你使用 restlet 组件可以做到这一点,但我想使用 servlet。

不,这是不可能的,但这可能是对支持的一个很好的补充。欢迎您登录 JIRA 工单:http://camel.apache.org/support.html

今天您必须将路线设置为

from("servlet:///my-api/v1/?matchOnUriPrefix=true")

然后抓取 Exchange.HTTP_PATH header 应该是相对路径,例如在您的示例中 {param1}