{"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\/fr\/informatique\/sitemesh-decoration-dune-page-derreur\/","title":{"rendered":"Sitemesh : d\u00e9coration d&rsquo;une page d&rsquo;erreur"},"content":{"rendered":"<p>Bonjour,<\/p>\n<p>Il y a quelques temps, j&rsquo;ai \u00e9crit un article introductif \u00e0 Sitemesh que l&rsquo;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&rsquo;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&rsquo;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 &lsquo;decoration done&rsquo; dans la requ\u00eate avant de passer dans la cha\u00eene de filtre qui g\u00e9n\u00e8re l&rsquo;erreur (pour ceux qui ne comprennent pas, c&rsquo;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&rsquo;erreur, dans le cas o\u00f9 c&rsquo;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&rsquo;ai \u00e9crit un article introductif \u00e0 Sitemesh que l&rsquo;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&rsquo;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&rsquo;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\/fr\/informatique\/sitemesh-decoration-dune-page-derreur\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/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\/fr\/informatique\/sitemesh-gerer-son-layout-sans-douleur\/","url_meta":{"origin":62,"position":0},"title":"Sitemesh : g\u00e9rer son layout sans douleur","author":"admin","date":"vendredi  6 juillet 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":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":66,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/freefr-le-meilleur\/","url_meta":{"origin":62,"position":1},"title":"Free.fr, le meilleur?","author":"admin","date":"lundi  7 janvier 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":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":391,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/chti-jug-drools-v5-et-drools-planner\/","url_meta":{"origin":62,"position":2},"title":"Ch&rsquo;ti Jug: Drools v5 et Drools Planner","author":"admin","date":"samedi 13 f\u00e9vrier 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":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1674,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/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":"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":"lundi 17 avril 2023","format":false,"excerpt":"Il existe pr\u00e8s de 900 BDD (cf https:\/\/dbdb.io\/) et chacune a ses particularit\u00e9s : mod\u00e8le de requ\u00eatage, mod\u00e9lisation de la donn\u00e9e, moteur de stockage, .... Existe-t-il une de ces trois caract\u00e9ristiques que l'on peut mutualiser ? Oui, toutes les bases de donn\u00e9es stockent de la donn\u00e9e, on doit donc pouvoir\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":72,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/politique\/mondialisation-positive\/","url_meta":{"origin":62,"position":4},"title":"Mondialisation positive ?","author":"admin","date":"jeudi 27 mars 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":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":96,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/record-du-monde\/","url_meta":{"origin":62,"position":5},"title":"Record du monde!","author":"admin","date":"vendredi  4 juillet 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":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":0,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/tags?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}