2012-03-18 54 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