2012-04-21 57 views
1

在ESB4.0.0,我可以使用XQuery這樣的:WSO2 ESB4.0.3不能使用XQuery

xquery key="conf:/closeUserRequest_xq" variable 
xmlns:ns="http://service.jscn.coship.com/" 
xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
name="closeUser1" 
expression="//p:closeUser/userId" type="DOCUMENT"/>xquery 

但是,當我升級到ESB4.0.3,用這個錯誤,如:

[2012-04-21 11:31:53,342] ERROR - XQueryMediator Unable to execute the query 
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) 

回答

1

是您在註冊表中提供的Xquery腳本嗎?檢查註冊表路徑是否正確..

+0

我不知道是否可用。但是相同的註冊表可以在ESB4.0.0中工作。 。你能告訴我什麼是4.0.3中正確的註冊表路徑嗎? – luohao 2012-04-23 03:07:33

+0

轉到您的Registrybrowser並檢查配置註冊表腳本是否可用 – Ratha 2012-04-23 04:21:52

+0

Ratha,謝謝。我認爲註冊表路徑是正確的。我在相同的路徑中添加了一個xslt。它可以工作。 XQuery也可以在4.0.0中工作。我不知道爲什麼在4.0.3中不能使用。我的XQuery是:聲明功能XF:closeUserRequest($ MESSAGE1爲節點())爲元件(){讓$消息:= $ MESSAGE1 返回 {$消息/ P:cycleIndex /文本()}}; 將變量$ message1聲明爲node()external; xf:closeUserRequest($ message1) – luohao 2012-04-24 01:39:19