2012-03-18 51 views
0

我正在設計一個包含XQuery轉換的代理服務序列。我在引用包含轉換的註冊表文件時遇到問題。使用WSO2 ESB進行XQuery轉換

這裏是序列:

<sequence name="MySequence" xmlns="http://ws.apache.org/ns/synapse" > 
    <xquery key="conf:/wsdl/xqueryRequest.xq" 
      target="..." 
      xmlns:ns="http://org.apache.synapse/xsd" > 
    <variable xmlns:ns2="http://..." name="var1" expression="..." type="ELEMENT" /> 
    </xquery> 
    <send> 
    <endpoint>...</endpoint> 
    </send> 
</sequence> 

包含XQuery轉換的文件在

/_system/config/wsdl/xqueryRequest.xq

上傳這是我收到的例外:

WARN ERROR_DETAIL : org.apache.synapse.SynapseException: 
Unable to execute the query at 
org.apache.synapse.mediators.xquery.XQueryMediator.handleException(XQueryMediator.java:627) at 
org.apache.synapse.mediators.xquery.XQueryMediator.mediate(XQueryMediator.java:130) at 
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) at 
... 
Caused by: java.lang.NullPointerException at 
org.wso2.carbon.mediation.registry.WSO2Registry.lookup(WSO2Registry.java:177) at 
org.apache.synapse.registry.AbstractRegistry.getResource(AbstractRegistry.java:63) at 
org.apache.synapse.config.SynapseConfiguration.getEntry(SynapseConfiguration.java:693) at 
org.apache.synapse.core.axis2.Axis2MessageContext.getEntry(Axis2MessageContext.java:194) at 
org.apache.synapse.mediators.xquery.XQueryMediator.performQuery(XQueryMediator.java:233) at 
org.apache.synapse.mediators.xquery.XQueryMediator.mediate(XQueryMediator.java:123) 
... 11 more 

異常顯示在WSO2Registry.lookup的NullPointer,所以我假設問題是在註冊表中找到XQuery文件,這部分:

key="conf:/wsdl/xqueryRequest.xq"

文檔示出了兩個代碼段(390391)用XQuery轉換,但其中的非解釋的howto參考中的XQuery文件。

問題:什麼應該是關鍵參數的正確值?我是否需要使用「本地登錄」功能?如果是,那麼我應該將該值定義爲「內聯XML條目」還是「內聯文本」?

更新12年3月23日:

問題2:也許一個簡單的問題:我應該在哪裏複製/上傳文件xqueryRequest.xq當我設置的Xquery調解員的關鍵領域鍵=」 xqueryRequest.xq「

回答

1

您可以嘗試將xquery保存爲本地條目並將其從XQuery中介中引用。 (請看本地入口樣本)

+0

謝謝。我創建了** Local Entry **> **內嵌文本條目**,其中包含** name:my-xquery value:conf:/wsdl/xqueryRequest.xq**。然後,在XQuery中介中設置** key =「my-xquery」**。在測試這個時,在#conf中查詢XQuery語法錯誤時出現**錯誤:/ wsdl#:QName不能以冒號結尾:{conf:} **。我應該把整個XQuery作爲本地條目嗎? – 2012-03-23 22:19:29

+0

或者,也許是一個更簡單的問題:當我將Xquery mediator的關鍵字段設置爲** key =「xqueryRequest.xq」**時,我應該在哪裏複製/上載xqueryRequest.xq文件? – 2012-03-23 23:15:09