Вход не вход для преобразования, Datapower

Доброе утро,

Когда я отправляю XML-запрос с помощью команд cURL для моей службы XML Firewall с конфигурацией Looback. Входные данные для правила, которые содержат:

Правило клиент-серверная конфигурация LoopBack XML Firewall

Отправляемые входные данные:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dpconfig="http://www.datapower.com/param/config" xmlns:dp="http://www.datapower.com/extensions" extension-element-prefixes="dp" xmlns:regexp="http://exslt.org/regular-expressions">
    <xsl:output method="xml"/>
    <xsl:template match="/">

<xsl:variable name=”message”>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.ws.identify.com" xmlns:code="http://code.ws.identify.com">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:validaCode>
         <ser:obj>
            <code:code>2016</code:code>
            <code:mensaje></code:mensaje>
         </ser:obj>
      </ser:validaCode>
   </soapenv:Body>
</soapenv:Envelope>

<xsl:variable name=”result” select=’dp:soap-call(“http://localhost:8080/ValidaCodigo/services/ImplCode”, $message)’/>
</xsl:variable>

<xsl:variable name=”respuestaDato” select=”$result//*[namespace-uri()=’uri-servicio’ and local-name()=’code’]/code()”/>

 </xsl:template>
</xsl:stylesheet>

Эти данные предназначены для веб-службы, которая находится на моем локальном компьютере. Когда вы отправляете метку кода, служба возвращает другую метку кода. Возникает вопрос, почему входные данные не передаются преобразованию в правиле политики? Когда запись данных для преобразования значка в правиле, выходные данные преобразования пусты.


person FrankP    schedule 09.08.2016    source источник
comment
Трудно сказать, например, будь то URL-адрес, на который вы отправляете, не соответствует соответствию ‹=›. В любом случае вы должны включить зонд отладки и проверить это всесторонне; может выглядеть много, но проведет вас по местам, которые вы будете посещать снова и снова   -  person Stefan Hegny    schedule 09.08.2016


Ответы (1)


Если это ваш XSLT, работающий в XMLFW, вы всегда будете отправлять одни и те же данные, содержимое переменной «message».

Вы получаете значение ответа в переменную respuestaDato, но никогда не записываете его обратно в OUTPUT.

Вам нужно добавить ВЫХОД, например:

<xsl:variable name=”respuestaDato” select=”$result//*[namespace-uri()=’uri-servicio’ and local-name()=’code’]/code()”/>
<xsl:value-of select=”respuestaDato” />

В качестве альтернативы вы можете просто ВЫВОДИТЬ результат напрямую:

<xsl:value-of select=”$result//*[namespace-uri()=’uri-servicio’ and local-name()=’code’]/code()”/>
person Anders    schedule 17.08.2016