我们有现有的xqueries,我们希望在我们新的JBoss保险丝集成应用程序中使用它。作为我尝试使用JBoss Fuse 6.3的XQuery组件的一部分。我的问题是如何将参数传递给我的XQuery函数。这是我的骆驼背景jboss保险丝xquery自定义功能
<camelContext id="dataConsumer-context" xmlns="http://camel.apache.org/schema/blueprint">
<propertyPlaceholder id="properties" location="classpath:sql.properties"/>
<route id="consumer-route">
<from id="_from1" uri="activemq:queue:house"/>
<log id="inputMessage" message="Got ${body}"/>
<to id="_to1" uri="xquery:myXquery.xquery"/>
<log id="transformedMessgae" message="Got ${body}"/>
<to id="_to2" uri="sql:{{sql.insertIntoMessage}}"/>
<log id="_log2" message="Message is inserted into DB"/>
</route>
</camelContext>
在myXquery.xquery这是功能我
declare function xf:myPayments($pmtAddInp1 as element(ns0:PmtAddInp),
$header as element(*), $PaymentConstants as element(*)) as element() { }
declare variable $pmtAddInp1 as element(ns0:PmtAddInp) external;
declare variable $header as element(*) external;
declare variable $PaymentConstants as element(*) external;
xf:myPayments($pmtAddInp1,$header,$PaymentConstants)
我很感激,如果有人能回答我的问题。
感谢Gerry的回应。让我试试看 – Praveen
它工作。谢谢格里 – Praveen
如果你想把xml放入消息头,它取决于xml的来源。如果在使用Camel从文件,数据库,队列或其他端点中读取xml后,xml在交换中,那么您可以直接使用setHeader(“parmName”,simple(“$ {body}”))你的骆驼路线。或者你可以使用一个常数,即使是这样:'setHeader(“parmName”,常量(“ Hello world ”))。 –