{"id":62,"date":"2007-12-12T13:36:15","date_gmt":"2007-12-12T12:36:15","guid":{"rendered":"http:\/\/loicmathieu.free.fr\/wordpress\/?p=62"},"modified":"2008-05-16T18:40:41","modified_gmt":"2008-05-16T17:40:41","slug":"sitemesh-decoration-dune-page-derreur","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/sitemesh-decoration-dune-page-derreur\/","title":{"rendered":"Sitemesh : d\u00e9coration d&#8217;une page d&#8217;erreur"},"content":{"rendered":"<p>Bonjour,<\/p>\n<p>Il y a quelques temps, j&#8217;ai \u00e9crit un article introductif \u00e0 Sitemesh que l&#8217;on peut trouver ici:  <a title=\"Permanent Link to Sitemesh : g\u00e9rer son layout sans douleur\" rel=\"bookmark\" href=\"http:\/\/loicmathieu.free.fr\/wordpress\/\/?p=39\">Sitemesh : g\u00e9rer son layout sans douleur.<\/a><\/p>\n<p>Un bug a \u00e9t\u00e9 trouv\u00e9 dans Sitemesh, normalement corrig\u00e9 dans la version 2.4 dont la date de sortie n&#8217;a pas encore \u00e9t\u00e9 annonc\u00e9e, je vais vous donner ici trois workaround possibles.<\/p>\n<p>Le probl\u00e8me: <strong>impossible de d\u00e9corer une page d&#8217;erreur avec Sitemesh.<\/strong>\n<em>Ticket JIRA: <a href=\"http:\/\/jira.opensymphony.com\/browse\/SIM-168\" target=\"_blank\"><a href=\"http:\/\/jira.opensymphony.com\/browse\/SIM-168\">http:\/\/jira.opensymphony.com\/browse\/SIM-168<\/a><\/a><\/em><\/p>\n<h4>Solution 1:<\/h4>\n<p>Sous <strong>Tomcat uniquement<\/strong>, mettre les param\u00e8tres suivant   (init-param) pour le filtre Sitemesh dans votre web.xml:<\/p>\n<pre>\n      sitemesh\n      \/*\n      REQUEST\n      FORWARD\n      ERROR\n<\/pre>\n<h4>Solution 2:<\/h4>\n<p>Le bug se situant au niveau du filtre Sitemesh qui met le param\u00e8tre &#8216;decoration done&#8217; dans la requ\u00eate avant de passer dans la cha\u00eene de filtre qui g\u00e9n\u00e8re l&#8217;erreur (pour ceux qui ne comprennent pas, c&#8217;est pas gr\u00e2ve :) ). Il faut \u00e9tendre le filtre Sitemesh en g\u00e9rant les erreurs comme ceci:<\/p>\n<pre class=\"code-java\"><span class=\"code-keyword\">public<\/span> class ErrorHandlingSiteMeshPageFilter <span class=\"code-keyword\">extends<\/span> PageFilter {\n\n    <span class=\"code-keyword\">public<\/span> void doFilter(ServletRequest request, ServletResponse rs, FilterChain chain)<\/pre>\n<pre class=\"code-java\">     <span class=\"code-keyword\">throws<\/span> IOException, ServletException {\n        <span class=\"code-keyword\">try<\/span> {\n            <span class=\"code-keyword\">super<\/span>.doFilter(request, rs, chain);\n        } <span class=\"code-keyword\">catch<\/span> (RuntimeException e) {\n            clearFilteredVariable(request);\n            <span class=\"code-keyword\">throw<\/span> e;\n        } <span class=\"code-keyword\">catch<\/span>(IOException e) {\n            clearFilteredVariable(request);\n            <span class=\"code-keyword\">throw<\/span> e;\n        } <span class=\"code-keyword\">catch<\/span>(ServletException e) {\n            clearFilteredVariable(request);\n            <span class=\"code-keyword\">throw<\/span> e;\n        }\n    }\n\n    <span class=\"code-keyword\">private<\/span> void clearFilteredVariable(ServletRequest request) {\n        request.setAttribute(FILTER_APPLIED, <span class=\"code-keyword\">null<\/span>);\n    }\n}<\/pre>\n<h4>Solution 3:<\/h4>\n<p>Si aucune de celle ci-dessus marchent ou ne sont possible chez vous, il suffit de d\u00e9corer manuellement votre page d&#8217;erreur, dans le cas o\u00f9 c&#8217;est une JSP. Ce qui peut \u00eatre fait simplement comme \u00e7a:<\/p>\n<pre class=\"code-java\">&lt;g:applyLayout name=<span class=\"code-quote\">\"main\"<\/span>&gt;\n <span class=\"code-comment\">\/\/ votre page d'erreur ici\n<\/span><\/pre>","protected":false},"excerpt":{"rendered":"<p>Bonjour, Il y a quelques temps, j&#8217;ai \u00e9crit un article introductif \u00e0 Sitemesh que l&#8217;on peut trouver ici: Sitemesh : g\u00e9rer son layout sans douleur. Un bug a \u00e9t\u00e9 trouv\u00e9 dans Sitemesh, normalement corrig\u00e9 dans la version 2.4 dont la date de sortie n&#8217;a pas encore \u00e9t\u00e9 annonc\u00e9e, je vais vous donner ici trois workaround possibles. Le probl\u00e8me: impossible de d\u00e9corer une page d&#8217;erreur avec Sitemesh. Ticket JIRA: <a href=\"http:\/\/jira.opensymphony.com\/browse\/SIM-168\">http:\/\/jira.opensymphony.com\/browse\/SIM-168<\/a> Solution 1: Sous Tomcat uniquement, mettre les param\u00e8tres suivant (init-param) pour&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/sitemesh-decoration-dune-page-derreur\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[151,11,15,13,14],"class_list":["post-62","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-informatique","tag-java","tag-layout","tag-sitemesh","tag-web"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":39,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/sitemesh-gerer-son-layout-sans-douleur\/","url_meta":{"origin":62,"position":0},"title":"Sitemesh : g\u00e9rer son layout sans douleur","author":"admin","date":"Friday July  6th, 2007","format":false,"excerpt":"Sitemesh permet de g\u00e9rer facilement le layout des application web JAVA. Une petite description de comment il marche.","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":66,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/freefr-le-meilleur\/","url_meta":{"origin":62,"position":1},"title":"Free.fr, le meilleur?","author":"admin","date":"Monday January  7th, 2008","format":false,"excerpt":"Free.fr meilleur FAI du monde? En tout cas, c'est presque ce que pense un journaliste expert am\u00e9ricainqui a dit, je cite: \"Si Xavier Niel - fondateur de Free - \u00e9tais \u00e0 chicago ou Houston, AT&T aurrait eu un probl\u00e8me sur les bras\" Et oui, notre FAI ch\u00e9rie est une star\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":391,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/chti-jug-drools-v5-et-drools-planner\/","url_meta":{"origin":62,"position":2},"title":"Ch&#8217;ti Jug: Drools v5 et Drools Planner","author":"admin","date":"Saturday February 13th, 2010","format":false,"excerpt":"Jeudi 21 janvier s'est tenu dans les locaux de l'Universit\u00e9 de Lille 1 une session du Ch'ti Jug sponsoris\u00e9e par Cylande sur Drools:\u00a0 Drools, avec Cylande et l'Universit\u00e9 Lille 1 Pour ceux qui ne savent pas ce qu'est le Ch'ti Jug ou ce qu'est un Jug, voir l'introduction de mon\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1674,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/devoxx-fr-2023-foundation-db-le-secret-le-mieux-garde-des-nouvelles-architectures-distribuees-par-pierre-zemb-et-steven-le-roux\/","url_meta":{"origin":62,"position":3},"title":"(Fran\u00e7ais) Devoxx FR 2023 &#8211; FoundationDB : le secret le mieux gard\u00e9 des nouvelles architectures distribu\u00e9es ! par Pierre Zemb et Steven Le Roux","author":"admin","date":"Monday April 17th, 2023","format":false,"excerpt":"Sorry, this entry is only available in Fran\u00e7ais.","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":72,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/politique\/mondialisation-positive\/","url_meta":{"origin":62,"position":4},"title":"Mondialisation positive ?","author":"admin","date":"Thursday March 27th, 2008","format":false,"excerpt":"La mondialisation! Quand on entend ce terme, au d\u00e9but, on pense aux d\u00e9localisation ou \u00e0 l'offshore: d\u00e9placer des \u00e9quipes de d\u00e9veloppement informatique par exemple, \u00e0 l'autre bout de la plan\u00e8te (en inde, souvent). Depuis quelques temps, on d\u00e9localisait aussi un peu plus pr\u00eat de nous, en Europe de l'est (offshore\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":96,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/record-du-monde\/","url_meta":{"origin":62,"position":5},"title":"Record du monde!","author":"admin","date":"Friday July  4th, 2008","format":false,"excerpt":"\u00c7a y est, avec plus de 8 millions de t\u00e9l\u00e9chargement pour firefox 3, un nouveau record du monde a \u00e9t\u00e9 \u00e9tablie. Et j'en fait partie! Voila j'ai particip\u00e9 \u00e0 mon premier record du monde (je doute qu'il y en ai d'autre mais on ne sais jamais :)). En voici la\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":0,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}