{"id":245,"date":"2012-01-24T16:13:00","date_gmt":"2012-01-24T19:13:00","guid":{"rendered":"http:\/\/fx2.com.uy\/site\/personalizar-mensajes-de-error-en-datapower-xml-firewall\/"},"modified":"2012-01-24T16:13:00","modified_gmt":"2012-01-24T19:13:00","slug":"personalizar-mensajes-de-error-en-datapower-xml-firewall","status":"publish","type":"post","link":"https:\/\/fx2.com.uy\/es\/noticias\/personalizar-mensajes-de-error-en-datapower-xml-firewall\/","title":{"rendered":"Personalizar mensajes de error en Datapower (XML Firewall)"},"content":{"rendered":"<p>\t\t\t\tUno de los primeros reclamos de los desarrolladores cuando comienzan a utilizar servicios sobre Datapower es los mensajes de error poco expl\u00edcitos y en siempre con la misma informaci\u00f3n.<\/p>\n<p>El mensaje est\u00e1ndar es:<\/p>\n<div><span>&lt;?<\/span><span>xml<\/span><span>version<\/span><span>=<\/span><span>&#8220;<span>1.0<\/span>&#8220;<span>encoding<\/span><span>=<\/span>&#8220;<span>utf-8<\/span>&#8220;<span>?&gt;<\/span> <\/span><\/div>\n<div><span lang=\"EN-US\">&lt;<\/span><span lang=\"EN-US\">env:Envelope<\/span><span lang=\"EN-US\">xmlns:env<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\">&#8220;<span>http:\/\/schemas.xmlsoap.org\/soap\/envelope\/<\/span>&#8220;<span>&gt;<\/span> <\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0 &lt;<\/span><span lang=\"EN-US\">env:Body<\/span><span lang=\"EN-US\">&gt;<\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">env:Fault<\/span><span lang=\"EN-US\">&gt;<\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">faultcode<\/span><span lang=\"EN-US\">&gt;<\/span><span lang=\"EN-US\">env:Client<span><span>faultcode<\/span><span>&gt;<\/span> <\/span><\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">faultstring<\/span><span lang=\"EN-US\">&gt;<\/span><span lang=\"EN-US\">Internal Error (from client)<span><span>faultstring<\/span><span>&gt;<\/span> <\/span><\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0 <span lang=\"EN-US\">env:Fault<\/span><span lang=\"EN-US\">&gt;<\/span><\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0 <span lang=\"EN-US\">env:Body<\/span><span lang=\"EN-US\">&gt;<\/span><\/span><\/div>\n<p><span lang=\"EN-US\"><span lang=\"EN-US\">env:Envelope<\/span><span lang=\"EN-US\">&gt;<\/span><\/p>\n<p>En general la pol\u00edtica que aplica el appliance es divulgar la menor informaci\u00f3n posible hacia el exterior, pero a nivel de administraci\u00f3n o logs la informaci\u00f3n tiene un nivel de detalle adecuado.<\/p>\n<p>Existe una forma muy simple de personalizar los mensajes de error en un servicio XML Firewall en Datapower para obtener respuestas m\u00e1s amigables o que cumplan un determinado formato.<\/span><\/p>\n<p><span lang=\"EN-US\"><!--more--><\/p>\n<p>Lo que se debe hacer es agregar una regla de Error a la Pol\u00edtica y utilizar una plantilla para obtener el formato deseado.<\/p>\n<p>Paso 1: Crear una Regla de Error.<\/p>\n<p><\/span><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td><a href=\"http:\/\/1.bp.blogspot.com\/-isUbAOetI1A\/Tx8AU88M5mI\/AAAAAAAAGsE\/pApBlLnjrgE\/s1600\/Step1-OnError.jpg\"><img loading=\"lazy\" alt=\"\" src=\"http:\/\/1.bp.blogspot.com\/-isUbAOetI1A\/Tx8AU88M5mI\/AAAAAAAAGsE\/pApBlLnjrgE\/s320\/Step1-OnError.jpg\" width=\"320\" height=\"186\" border=\"0\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td>Paso 1 &#8211; Click en la im\u00e1gen para maximizar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div><\/div>\n<div>Paso 2:<\/div>\n<div>a &#8211; Asignar una plantilla de transformaci\u00f3n con el mensaje deseado.<\/div>\n<div><\/div>\n<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td><a href=\"http:\/\/2.bp.blogspot.com\/-vJ_e6d_Bne0\/Tx8AxF_i2pI\/AAAAAAAAGsM\/1sz34E8N8jA\/s1600\/Step2-OnError.jpg\"><img loading=\"lazy\" alt=\"\" src=\"http:\/\/2.bp.blogspot.com\/-vJ_e6d_Bne0\/Tx8AxF_i2pI\/AAAAAAAAGsM\/1sz34E8N8jA\/s320\/Step2-OnError.jpg\" width=\"320\" height=\"191\" border=\"0\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td>Paso 2.a &#8211; Click en la im\u00e1gen para maximizar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div><\/div>\n<div><\/div>\n<div>b \u2013 asignar informaci\u00f3n de detalle al error<\/div>\n<div><span lang=\"EN-US\">&lt;?<\/span><span lang=\"EN-US\">xml<\/span><span lang=\"EN-US\">version<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>1.0<\/span>&#8220;<span>encoding<\/span><span>=<\/span>&#8220;<span>UTF-8<\/span>&#8220;<span>?&gt;<\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">&lt;<\/span><span lang=\"EN-US\">xsl:stylesheet<\/span><span lang=\"EN-US\">version<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>2.0<\/span>&#8220;<span>xmlns:xsl<\/span><span>=<\/span>&#8220;<span>http:\/\/www.w3.org\/1999\/XSL\/Transform<\/span>&#8220;<span>xmlns:fo<\/span><span>=<\/span>&#8220;<span>http:\/\/www.w3.org\/1999\/XSL\/Format<\/span>&#8220;<span>xmlns:xs<\/span><span>=<\/span>&#8220;<span>http:\/\/www.w3.org\/2001\/XMLSchema<\/span>&#8220;<span>xmlns:fn<\/span><span>=<\/span>&#8220;<span>http:\/\/www.w3.org\/2005\/xpath-functions<\/span>&#8220;<\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"EN-US\">xmlns:dp<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>http:\/\/www.datapower.com\/extensions<\/span>&#8220;<\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"EN-US\">extension-element-prefixes<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>dp<\/span>&#8220;<\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"EN-US\">exclude-result-prefixes<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\">&#8220;<span>dp<\/span>&#8220;<\/span><span>&gt;<\/span><\/div>\n<div><\/div>\n<div><span>\u00a0 &lt;<\/span><span>xsl:template<\/span><span>match<\/span><span>=<\/span><span><span>&#8220;<span>\/<\/span>&#8220;<span>&gt;<\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span>Respuesta<\/span><span>&gt;<\/span><\/div>\n<div><span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span>codigo<\/span><span>&gt;<\/span><span><span>-99999<span><span>codigo<\/span><span>&gt;<\/span><\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span>descripcion<\/span><span>&gt;<\/span><span><span>No se ha podido procesar el archivo correctamente<span><span>descripcion<\/span><span>&gt;<\/span><\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span lang=\"EN-US\">&lt;<\/span><span lang=\"EN-US\">detalle<\/span><span lang=\"EN-US\">&gt;<\/span><\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">xsl:value-of<\/span><span lang=\"EN-US\">select<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>dp:variable(&#8216;var:\/\/service\/error-message&#8217;)<\/span>&#8220;<span>\/&gt;<\/span> &#8211;<\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">xsl:value-of<\/span><span lang=\"EN-US\">select<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>dp:variable(&#8216;var:\/\/service\/error-code&#8217;)<\/span>&#8220;<span>\/&gt;<\/span> &#8211;<\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;<\/span><span lang=\"EN-US\">xsl:value-of<\/span><span lang=\"EN-US\">select<\/span><span lang=\"EN-US\">=<\/span><span lang=\"EN-US\"><span lang=\"EN-US\">&#8220;<span>dp:variable(&#8216;var:\/\/service\/error-subcode&#8217;)<\/span>&#8220;<span>\/&gt; <\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><span lang=\"EN-US\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span><span>detalle<\/span><span>&gt;<\/span> <\/span><\/div>\n<div><\/div>\n<div><span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span>Respuesta<\/span><span>&gt;<\/span> <\/span><\/div>\n<div><\/div>\n<div><span>\u00a0 <span>xsl:template<\/span><span>&gt;<\/span> <\/span><\/div>\n<div><\/div>\n<div><span><span><span>xsl:stylesheet<\/span><span>&gt;<\/span><\/span><\/span>&nbsp;<\/p>\n<\/div>\n<div><\/div>\n<div>Paso 3 (opcional): Asignar una acci\u00f3n de OnError a la relga base de ejecuci\u00f3n.<\/div>\n<div><\/div>\n<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td><a href=\"http:\/\/3.bp.blogspot.com\/-v86bCrqZzaw\/Tx8BKL1ETxI\/AAAAAAAAGsU\/OTT-iIlE1gs\/s1600\/Step3a-OnError.jpg\"><img loading=\"lazy\" alt=\"\" src=\"http:\/\/3.bp.blogspot.com\/-v86bCrqZzaw\/Tx8BKL1ETxI\/AAAAAAAAGsU\/OTT-iIlE1gs\/s320\/Step3a-OnError.jpg\" width=\"320\" height=\"254\" border=\"0\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td>Paso 3.a &#8211; Click en la im\u00e1gen para maximizar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td><a href=\"http:\/\/4.bp.blogspot.com\/-aYm4sCNXIu0\/Tx8BLuZrp-I\/AAAAAAAAGsc\/fyNJUCJs6zk\/s1600\/Step3b-OnError.jpg\"><img loading=\"lazy\" alt=\"\" src=\"http:\/\/4.bp.blogspot.com\/-aYm4sCNXIu0\/Tx8BLuZrp-I\/AAAAAAAAGsc\/fyNJUCJs6zk\/s320\/Step3b-OnError.jpg\" width=\"320\" height=\"150\" border=\"0\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td>Paso 3.b &#8211; Click en la im\u00e1gen para maximizar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div>De esta forma muy simple se puede lograr una respuesta mas adecuada al desarrollador o al programa que consume los servicios expuestos en Datapower.<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<p>&nbsp;\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uno de los primeros reclamos de los desarrolladores cuando comienzan a utilizar servicios sobre Datapower es los mensajes de error poco expl\u00edcitos y en siempre con la misma informaci\u00f3n. El mensaje est\u00e1ndar es: &lt;?xmlversion=&#8220;1.0&#8220;encoding=&#8220;utf-8&#8220;?&gt; &lt;env:Envelopexmlns:env=&#8220;http:\/\/schemas.xmlsoap.org\/soap\/envelope\/&#8220;&gt; \u00a0 &lt;env:Body&gt; \u00a0\u00a0\u00a0 &lt;env:Fault&gt; \u00a0\u00a0\u00a0\u00a0\u00a0 &lt;faultcode&gt;env:Clientfaultcode&gt; \u00a0\u00a0\u00a0\u00a0\u00a0 &lt;faultstring&gt;Internal Error (from client)faultstring&gt; \u00a0\u00a0\u00a0 env:Fault&gt; \u00a0 env:Body&gt; env:Envelope&gt; En general la pol\u00edtica [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[62],"tags":[],"_links":{"self":[{"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/posts\/245"}],"collection":[{"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":0,"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"wp:attachment":[{"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fx2.com.uy\/es\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}