jsf problem with tiles:can't get definitions from the context
843842Nov 5 2004 — edited Dec 8 2005Hi,
I got the same error, "can't get definitions from the context". I have only one <f:view> tag in my jsp.
Here is how i setup the environment:
1.download struts 1.1 from http://jakarta.apache.org/site/binindex.cgi
2.copy the following jar files from $STRUTS_HOME/lib to $TOMCAT/common/lib
3.add the tiles servlet to deployment descriptor(web.xml)
4.set the tiles configuration file to /WEB-INF/tiles.xml in web.xml
Can anybody help me?
Thanks a lot!
Jie
The following is apache error message displayed on the page:
==========================
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Can't get definitions factory from context.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.book_jsp._jspService(book_jsp.java:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
root cause
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.book_jsp._jspx_meth_tiles_insert_0(book_jsp.java:229)
org.apache.jsp.book_jsp._jspx_meth_h_form_0(book_jsp.java:208)
org.apache.jsp.book_jsp._jspx_meth_f_subview_0(book_jsp.java:185)
org.apache.jsp.book_jsp._jspx_meth_f_view_0(book_jsp.java:121)
org.apache.jsp.book_jsp._jspService(book_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
web.xml
================
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Tiles Servlet</servlet-name>
<servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
tiles.xml
==================
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
<tiles-definitions>
<definition name="book" path="/headerMenuContentLayout.jsp">
<put name="gridClass" value="headerMenuContent"/>
<put name="headerClass" value="header"/>
<put name="menuColumnClass" value="menuColumn"/>
<put name="contentColumnClass" value="contentColumn"/>
<put name="header" value="/bookHeader.jsp"/>
<put name="menu" value="/bookMenu.jsp"/>
<put name="content" value="/bookContent.jsp"/>
</definition>
</tiles-definitions>