IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

[S2+Tiles2] Problème de définitions non trouvées.


Sujet :

Struts 2 Java

  1. #1
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut [S2+Tiles2] Problème de définitions non trouvées.
    Bonjour.
    Je m'arrache les cheveux depuis quelques temps sur le problème suivant :
    Contexte :
    - Struts 2.0.7
    - Struts 2 Tiles plugin - 2.0.7
    - Tiles-API 2.0 20070207
    - Tiles-Core 2.0 20070207
    - Tomcat 5.5.20
    - Windows XP pro.
    - JDK 1.5.0_11

    Le fichier web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <context-param>
    	<param-name>definitions-config</param-name>
    	<param-value>/WEB-INF/tiles.xml</param-value>
    </context-param>
    <listener>
        	<display-name>Tiles Listener</display-name>
    	<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>
    Le fichier Tiles.xml (/WEB-INF/tiles.xml)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ...
    	<definition name="default" template="/WEB-INF/templates/template.jsp">
    		<put-attribute name="title" value="Default template"/>
    		<put-attribute name="header" value="/WEB-INF/atoms/header-default.jsp"/>
    		<put-attribute name="banner" value="/WEB-INF/atoms/banner-default.jsp"/>
    		<put-attribute name="menu" value="/WEB-INF/atoms/menu-default.jsp"/>
    		<put-attribute name="main" value="/WEB-INF/atoms/main-null.jsp"/>
    		<put-attribute name="footer" value="/WEB-INF/atoms/footer-default.jsp"/>
    	</definition>
    	<definition name="index" extends="default">
    		<put-attribute name="title" type="definition" value="Index page"/>
    		<put-attribute name="header" type="definition" value="/WEB-INF/atoms/header-default.jsp"/>
    		<put-attribute name="banner" type="definition" value="/WEB-INF/atoms/banner-default.jsp"/>
    		<put-attribute name="menu" type="definition" value="/WEB-INF/atoms/menu-default.jsp"/>
    		<put-attribute name="main" type="definition" value="/WEB-INF/atoms/main-default.jsp"/>
    		<put-attribute name="footer" type="definition" value="/WEB-INF/atoms/footer-default.jsp"/>
    	</definition>
    ...
    Le fichier template.jsp (/WEB-INF/templates/template.jsp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%@ taglib prefix="tiles" uri="/WEB-INF/tiles-core.tld" %>
    <s:url id="style" value="/css/style.css" />
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      	<s:head theme="xhtml" debug="false"/>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css" href="${style}">
      </head>
      <body>
    	<div class="containeur">
    		<h1>Doh!</h1>
    		<h2><tiles:insertAttribute name="title"/></h2>
    		<tiles:insertAttribute name="header"/>
    		<tiles:insertAttribute name="banner"/>
    		<tiles:insertAttribute name="menu"/>
    		<tiles:insertAttribute name="main"/>
    		<tiles:insertAttribute name="footer"/>
    	</div>
      </body>
    </html>
    Et quand j'appelle une action qui me renvoie vers le tiles index, j'ai une erreur comme celle-ci pour chaque insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    10 avr. 2007 16:19:59 org.apache.tiles.taglib.ContainerTagSupport doEndTag
    GRAVE: Error executing tag: Attribute 'title' not found.
    org.apache.tiles.TilesException: Attribute 'title' not found.
    	at org.apache.tiles.taglib.InsertAttributeTag.render(InsertAttributeTag.java:93)
    	at org.apache.tiles.taglib.RenderTagSupport.execute(RenderTagSupport.java:122)
    	at org.apache.tiles.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
    	at org.apache.jsp.WEB_002dINF.templates.be_jsp._jspx_meth_tiles_insertAttribute_0(be_jsp.java:176)
    	at org.apache.jsp.WEB_002dINF.templates.be_jsp._jspService(be_jsp.java:88)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
    	at org.apache.tiles.context.servlet.ServletTilesRequestContext.include(ServletTilesRequestContext.java:181)
    	at org.apache.tiles.context.TilesRequestContextWrapper.include(TilesRequestContextWrapper.java:64)
    	at org.apache.struts2.tiles.StrutsTilesRequestContext.include(StrutsTilesRequestContext.java:120)
    	at org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:83)
    	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:395)
    	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:345)
    	at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:104)
    	at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
    ...
    10 avr. 2007 16:19:59 org.apache.tiles.taglib.RenderTagSupport doCatch
    GRAVE: Error during rendering
    javax.servlet.jsp.JspException: Error executing tag: Attribute 'title' not found.
    	at org.apache.tiles.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:84)
    	at org.apache.jsp.WEB_002dINF.templates.be_jsp._jspx_meth_tiles_insertAttribute_0(be_jsp.java:176)
    	at org.apache.jsp.WEB_002dINF.templates.be_jsp._jspService(be_jsp.java:88)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
    	at org.apache.tiles.context.servlet.ServletTilesRequestContext.include(ServletTilesRequestContext.java:181)
    	at org.apache.tiles.context.TilesRequestContextWrapper.include(TilesRequestContextWrapper.java:64)
    	at org.apache.struts2.tiles.StrutsTilesRequestContext.include(StrutsTilesRequestContext.java:120)
    	at org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:83)
    	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:395)
    	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:345)
    	at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:104)
    	at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
    ...
    Je n'arrive pas à trouver pourquoi il ne voit rien :'(

    Merci pour votre aide.

    PPDL

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peut-être un problème de DTD.
    Es-tu sûr que la DTD que tu as spécifié dans le fichier tiles.xml est la bonne ?
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut
    Je teste en recopiant la DTD des jars du Tiles-Core.

    PPDL.

  4. #4
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut
    En fait je n'ai plus la même erreur en spécifiant la DTD fournie par le fichier Tile-Core-2.0-20070207.jar.
    Maintenant j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    javax.servlet.ServletException
    	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:518)
    	org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
    	org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
     
    cause mère
     
    java.lang.NullPointerException
    	org.apache.tiles.definition.ComponentDefinitionsImpl.resolveAttributeDependencies(ComponentDefinitionsImpl.java:168)
    	org.apache.tiles.definition.ComponentDefinitionsImpl.addDefinitions(ComponentDefinitionsImpl.java:81)
    	org.apache.tiles.definition.UrlDefinitionsFactory.readDefinitions(UrlDefinitionsFactory.java:258)
    	org.apache.tiles.definition.UrlDefinitionsFactory.getComponentDefinitions(UrlDefinitionsFactory.java:116)
    	org.apache.tiles.definition.UrlDefinitionsFactory.getDefinition(UrlDefinitionsFactory.java:136)
    	org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:463)
    	org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:363)
    	org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:345)
    	org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:104)
    	org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
    ....
    Et maintenant je n'ai même pas le rendu de ce qui se trouve avant la première définition .

    Je continue de creuser...

    PPDL.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    J'avais la même erreur initiale : ...TilesException: Attribute 'menu' not found. ...

    En changant la dtd tout allait bien! Voila le mode opératoire :


    -recuperer la dtd du jar tiles-core-2.0.4.jar dans org\apache\tiles\resources. -importer la dtd dans la web-app dans un repertoire dtd
    -faire référence à cette dtd dans struts.xml :

    <!DOCTYPE tiles-definitions PUBLIC
    "/WEB-INF/dtd/tiles-config_2_0.dtd">

Discussions similaires

  1. Problème avec regex non trouvé
    Par Damien69 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2008, 13h32
  2. Problème de paramètres non trouvés
    Par jodan33 dans le forum Débuter
    Réponses: 18
    Dernier message: 28/03/2008, 09h04
  3. Réponses: 9
    Dernier message: 18/02/2008, 20h27
  4. [Loader] Problème de classe non trouvée avec LoadFile
    Par Ericx_25 dans le forum Autres composants
    Réponses: 3
    Dernier message: 29/01/2007, 19h01
  5. problème de fonction non trouvées
    Par youp_db dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/09/2006, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo