如何在xquery中访问交换头?

时间:2019-06-14 05:57:42

标签: apache-camel xquery

无法从xquery的交换头中获取值。举个例子 引起原因:net.sf.saxon.trans.XPathException:对变量$ in.headers.sourceSystem的未解析引用。 https://camel.apache.org/xquery.html

我正在使用在春季启动中运行的骆驼2.21.3。

<route id="exampleRoute">
            <from uri="direct:start" />
            <setHeader headerName="sourceSystem">
                <constant>PR0</constant>
            </setHeader>
            <transform>
                <xquery>
                   element item {$in.headers.sourceSystem}
                </xquery>
            </transform>
            <to uri="mock:result"/>
        </route>

预期结果看起来像

<item>PR0</item>

1 个答案:

答案 0 :(得分:1)

这非常简单,但是可以在文档中提及。

            <transform>
                <xquery>
                    declare variable $in.headers.sourceSystem external;
                    element item {$in.headers.sourceSystem}
                </xquery>
            </transform>