apache camel使用spring dsl读取头文件

时间:2015-01-16 09:14:42

标签: spring apache-camel

我正在尝试使用Apache camel 2.14.1" Rest"零件。下面是我的spring dsl配置rest组件

<rest path="/a">
            <get uri="/{b}">
                <route>
                    <setBody>
                        <simple>${header.b}:${header.headerName}</simple>
                    </setBody>
                    <to uri="activemq:queue:requestQueue?replyTo=responseQueue"/>
                </route>
            </get>
</rest>

当我通过使用postman插件设置标题(headerName = 1)来调用此服务(http // localhost:8081 / test / a / b)时,我的camel配置无法读取标头值。

根据文档,我们可以使用$ {in.header.headerName}读取标题,在我的情况下返回为空。

请帮我阅读标题值。

1 个答案:

答案 0 :(得分:0)

首先,路径/test/a/b与您使用/a基础配置的路径和路径模式/{b}不匹配。您必须从您的路径中删除/test

为什么你不会得到我不知道的标题。您尝试设置/访问的标题名称中可能有拼写错误?

以下适用于我,使用不同的样式访问标题:

<rest path="/header-test">
    <get>
        <route id="header-test">
            <log message="Header: $simple{in.headers[my-header]}" loggingLevel="INFO" logName="header-test" />
            <transform>
                <simple>${header.my-header}</simple>
            </transform>
            <log message="Body: $simple{body}" loggingLevel="INFO" logName="header-test" />
        </route>
    </get>
</rest>