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.0“encoding=“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.0“encoding=“UTF-8“?>
<xsl:stylesheetversion=“2.0“xmlns:xsl=“http://www.w3.org/1999/XSL/Transform“xmlns:fo=“http://www.w3.org/1999/XSL/Format“xmlns:xs=“http://www.w3.org/2001/XMLSchema“xmlns: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.