【问题标题】:wso2 esb 4.6.0 and Wso2 DSS 3.0.1 with xslt mediatorwso2 esb 4.6.0 和 Wso2 DSS 3.0.1 与 xslt 中介
【发布时间】:2013-10-12 12:05:13
【问题描述】:

这里是我的服务

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Getxslt"
       transports="https http"
       startOnLoad="true"
       trace="disable">
   <description/>
   <target>
      <inSequence onError="fault">
         <xslt key="emptransform">

         </xslt>
         <payloadFactory>
            <format>
               <select xmlns=""/>
            </format>
         </payloadFactory>
         <send>
            <endpoint>
               <address uri="http://localhost:9764/services/emp_DataService/" format="soap11"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence onError="fault">
         <log level="full"/>
         <send/>
      </outSequence>
   </target>
   <parameter name="serviceType">proxy</parameter>
</proxy>

XSLT 是

<?xml version="1.0" encoding="UTF-8"?>
<localEntry xmlns="http://ws.apache.org/ns/synapse" key="emptransform">

      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      xmlns:ns1="http://ws.wso2.org/dataservice"
                      version="1.0">
         <xsl:output method="xml" omit-xml-declaration="yes"/>
         <xsl:template match="ns1:Body">
            <ns1:select/>
         </xsl:template>
      </xsl:stylesheet>

   <description/>
</localEntry>

DSS 服务:- DSS:-

<data name="emp_DataService" serviceNamespace="http://ws.wso2.org/dataservice">
   <config id="default">
      <property name="carbon_datasource_name">Signingtest</property>
   </config>
   <query id="select_all_emp_query" useConfig="default">
      <sql>SELECT eno, username, password FROM public.emp</sql>
      <result element="empCollection" rowName="emp">
         <element column="eno" name="eno" xsdType="xs:integer"/>
         <element column="username" name="username" xsdType="xs:string"/>
         <element column="password" name="password" xsdType="xs:string"/>
      </result>
   </query>>
   <operation name="select">
      <call-query href="select_all_emp_query"/>
   </operation>
  </data>

我收到以下错误:-

wso2 esb 中的 XSLT 报错

{"ResponseJSON":{"Body":{"Data":{"Exception":"Unable to perform XSLT transformation using : Value {name ='null', keyValue ='emptransform'} against source XPath : s11:Body\/child::*[position()=1] | s12:Body\/child::*[position()=1]"}},"Status":"0"}}

我正在使用 wso2 esb 4.6.0 和 DSS 3.0.1,我编写了使用 xslt 调解器的代理服务,当我执行我的代理时,它给出了以下错误。 能否请您纠正我,我哪里错了..

【问题讨论】:

    标签: xml xslt wso2 wso2esb wso2dss


    【解决方案1】:

    您尝试发送到代理的有效负载是什么?在您的 XSLT 中,您将 BODY 与命名空间“http://ws.wso2.org/dataservice”相匹配,您是否发送了具有该命名空间的有效负载?显然不是。最好的事情是,使用第 3 方在线 xslt 评估器并针对请求负载运行我们的 xslt,并在通过 ESB 发送之前验证您的 xslt 行为正确。这样,您就可以轻松隔离错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多