我們有現有的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 」))。 –