Uno de los primeros reclamos de los desarrolladores cuando comienzan a utilizar servicios sobre Datapower es los mensajes de error poco explícitos y en siempre con la misma información.

El mensaje est√°ndar es:

<?xmlversion=1.0encoding=utf-8?>
<env:Envelopexmlns:env=http://schemas.xmlsoap.org/soap/envelope/>
  <env:Body>
    <env:Fault>
      <faultcode>env:Clientfaultcode>
      <faultstring>Internal Error (from client)faultstring>
    env:Fault>
  env:Body>

env:Envelope>

En general la política que aplica el appliance es divulgar la menor información posible hacia el exterior, pero a nivel de administración o logs la información tiene un nivel de detalle adecuado.

Existe una forma muy simple de personalizar los mensajes de error en un servicio XML Firewall en Datapower para obtener respuestas m√°s amigables o que cumplan un determinado formato.

Lo que se debe hacer es agregar una regla de Error a la Política y utilizar una plantilla para obtener el formato deseado.

Paso 1: Crear una Regla de Error.

Paso 1 – Click en la im√°gen para maximizar
Paso 2:
a РAsignar una plantilla de transformación con el mensaje deseado.
Paso 2.a – Click en la im√°gen para maximizar
b ‚Äď asignar informaci√≥n de detalle al error
<?xmlversion=1.0encoding=UTF-8?> 

<xsl:stylesheetversion=2.0xmlns:xsl=http://www.w3.org/1999/XSL/Transformxmlns:fo=http://www.w3.org/1999/XSL/Formatxmlns:xs=http://www.w3.org/2001/XMLSchemaxmlns:fn=http://www.w3.org/2005/xpath-functions 

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† xmlns:dp=http://www.datapower.com/extensions 

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† extension-element-prefixes=dp 

                exclude-result-prefixes=dp>
¬† <xsl:templatematch=/> 

      <Respuesta>
¬†¬†¬†¬†¬†¬†¬† <codigo>-99999codigo> 

¬†¬†¬†¬†¬†¬†¬† <descripcion>No se ha podido procesar el archivo correctamentedescripcion> 

        <detalle>
¬†¬†¬†¬†¬†¬†¬†¬†¬† <xsl:value-ofselect=dp:variable(‘var://service/error-message’)/> 

¬†¬†¬†¬†¬†¬†¬†¬†¬† <xsl:value-ofselect=dp:variable(‘var://service/error-code’)/> 

¬†¬†¬†¬†¬†¬†¬†¬†¬† <xsl:value-ofselect=dp:variable(‘var://service/error-subcode’)/>  

        detalle>
      Respuesta>
  xsl:template>
xsl:stylesheet> 

Paso 3 (opcional): Asignar una acción de OnError a la relga base de ejecución.
Paso 3.a – Click en la im√°gen para maximizar
Paso 3.b – Click en la im√°gen para maximizar
De esta forma muy simple se puede lograr una respuesta mas adecuada al desarrollador o al programa que consume los servicios expuestos en Datapower.