如何仅将参数值添加到驼峰中的端点?

时间:2020-01-10 06:37:57

标签: apache-camel spring-camel camel-http

<camel:from id="_from2" uri="timer://foo?repeatCount=1"/>
            <camel:to id="_to2" uri="DBSQLComponent:{{sql.testQuery}}"/>
            <log id="_log4" message="Received ${body.size()} records from the poller query"/>
            <log id="_log5" message="Message Body= ${body}"/>
            <to id="_to3" uri="log:output?showAll=true"/>
            <camel:process id="_processNewNotifications" ref="newNotifications"/>
            <setHeader headerName="CamelHttpMethod" id="setHeader4">
                <constant>GET</constant>
            </setHeader>
            <setHeader headerName="Content-Type" id="_setHeader5">
                <constant>application/json</constant>
            </setHeader>                                                                                                                                                                                                                        
            <setHeader headerName="CamelHttpQuery" id="setHeader7">
                <simple>Id=${property.POList}</simple>
            </setHeader>
            <inOut id="_createPO" uri="cxfrs:bean:purchaseOrderDetailsEndpoint+${property.POList}"/>
</camel>

我是Camel的新手,我正努力寻找仅附加参数值的资源?对于当前代码,它将向端点添加?Id = $ {property.POList}。我只希望将值$ {property.POList}添加到其余端点。请建议最好的操作方法,即仅在Spring DSL中为端点添加一个值。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用toDreceipientList来允许将参数输入到URI

答案 1 :(得分:0)

您正在设置一个特殊的标头“ CamelHttpQuery”,当交换传递到CXFRS组件时,它将作为HTTP查询将其内容添加到CXF URL(这就是为什么看到自动添加?符号的原因) )。

您可以尝试改用标头“ CamelHttpPath”,它应该设置资源路径。