OVH Cloud OVH Cloud

tiles definitions : Can't get definitions factory from context

1 réponse
Avatar
LR
Salut,

J'essaie de mettre en oeuvre un exemple d'utilisation de tiles.

Dans mon web.xml, j'ai
----------------------------
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"
/>
<set-property property="moduleAware" value="true" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
----------------------------

Dans le dossier WEB-INF j'ai un fichier tiles-defs.xml contenant
----------------------------
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">

<!-- Definitions for Tiles documentation -->
<tiles-definitions>

<!-- ========================================================== -->
<!-- Master definition -->
<!-- ========================================================== -->
<!-- Main page layout used as a root for other page definitions -->

<definition name="site.mainLayout" path="/layouts/classicLayout.jsp">
<put name="title" value="Tiles Blank Site" />
<put name="header" value="/tiles/common/header.jsp" />
<put name="menu" value="site.menu.bar" />
<put name="footer" value="/tiles/common/footer.jsp" />
<put name="body" value="/tiles/body.jsp" />
</definition>

<!-- ========================================================== -->
<!-- Index page definition -->
<!-- ========================================================== -->
<!-- This definition inherits from the main definition.
It overloads the page title and the body used.
Use the same mechanism to define new pages sharing common
properties (here header, menu, footer, layout)
-->

<definition name="site.index.page" extends="site.mainLayout" >
<put name="title" value="Tiles Blank Site Index" />
<put name="body" value="/tiles/body.jsp" />
</definition>

</tiles-definition>
----------------------------

J'ai créé les pages jsp du dossier layout et dans mon index.jsp, j'ai mis
----------------------------
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="site.mainLayout" />
----------------------------

Quand j'essaie d'ouvrir mon fichier index.jsp, j'obtient
----------------------------
javax.servlet.jsp.JspException: Can't get definitions factory from context.
org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:575)
org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:474)
org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:436)
org.apache.jsp.index_jsp._jspx_meth_tiles_insert_0(index_jsp.java:79)
org.apache.jsp.index_jsp._jspService(index_jsp.java:57)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)----------------------------

Merci de m'aider, ça fait plus d'une heure que je patauge...
Lilian

1 réponse

Avatar
LR
J'ai trouvé. En fait j'avais une erreur de syntaxe xml et je n'avais pas vu
le message d'erreur.

Par contre, quelqu'un sait pourquoi à chaque démarrage de l'applic tomcat se
connecte à internet puis me sort
-------------------
26 janv. 2005 14:23:58 org.apache.struts.tiles.TilesPlugin
initDefinitionsFactory

INFO: Tiles definition factory loaded for module ''.

-------------------

Merci d'avance
Lilian