You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Tuan H. Le" <tu...@phsadc.com> on 2002/09/27 21:25:21 UTC
"tiles-definitions" is incomplete
Hi,
I just found this error in tomcat log, and I couldn't figure out the reason for causing this error when I don't use struts-tiles tag. Though, I didn't see this error before. I must have modified the web.xml file. Here is the error message with the web.xml file
Please advise on troubleshooting this error.
Thanks in advance for your help!
Tuan
org.xml.sax.SAXParseException: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:232)
at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:173)
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:362)
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:296)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1953)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:878)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElement(XMLDocumentFragmentScannerImpl.java:1144)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:987)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1445)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:524)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1169)
at org.apache.commons.digester.Digester.parse(Digester.java:1514)
at org.apache.struts.tiles.xmlDefinition.XmlParser.parse(XmlParser.java:341)
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFile(I18nFactorySet.java:529)
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFiles(I18nFactorySet.java:466)
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.createDefaultFactory(I18nFactorySet.java:294)
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:267)
at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:215)
at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.init(ComponentDefinitionsFactoryWrapper.java:69)
at org.apache.struts.tiles.DefinitionsUtil.createDefinitionsFactory(DefinitionsUtil.java:276)
at org.apache.struts.tiles.TilesPlugin.init(TilesPlugin.java:147)
at org.apache.struts.action.ActionServlet.initApplicationPlugIns(ActionServlet.java:991)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:458)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:924)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3342)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3534)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2191)
at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
[ERROR] Digester - -Parse Error at line 39 column 21: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+". <org.xml.sax.SAXParseException: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+".>
------ WEB-INF\web.xml -------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>5</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>mapping</param-name>
<param-value>
com.phs.ezhr.domain.EZHRActionMapping
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>/Login.jsp</welcome-file>
</welcome-file-list>
<!-- Struts Tag Library Descriptor -->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection instances that may be used for talking to a particular database that is configured in the server.xml file
</description>
<res-ref-name>jdbc/ezhr</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
Re: in inserted pages
Posted by Cedric Dumoulin <ce...@apache.org>.
Hi Ralf,
It is allowed to nest tiles in an application. However, tiles
attributes are only visible from the tiles, not from its sub-tiles or
from its parent. This behavior is the same as a method call: parameters
are only visible in the method, not in its called methods.
To solve your problem, you need to pass tiles attributes explicitly,
as you would do in a method call:
<tile:insert attribute="body">
<tiles:put name="subview" beanName="subview" beanScope="tiles" />
<tile:insert/>
Hope this help,
Cedric
Ralf E. Stranzenbach wrote:
>Hi,
>
>i've build a small application using Tiles and Struts which worked very
>well.
>
>The setup of all pages is described using the tiles-defs.xml file. For all
>those pages there is a single layout.jsp that contains the layout code and
>inserts all other views of the application.
>
>Last night i've extended the application and there was therequirement of a
>"body" view that sometimes inserts another view on its own.
>
>Therefore i expected to get the following situation
>
>somePage -> maps to body->details.jsp, subview->moredetails.jsp and
>layout.jsp
> -- layout.jsp -> <tile:insert attribute="body">
> -- body: details.jsp -> <tiles:insert attribute="subview">
> -- subview: moredetail.jsp
>
>This is the behaviour i've expected an i want to have. But if i try to
><tiles:insert> in the details.jsp Tiles throws an "subview" attribute not
>found exception.
>
>Is it *NOT* allowed to nest Tiles in an application?
>
>Sincerley,
> - Ralf
>
>
>
>--
>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
in inserted pages
Posted by "Ralf E. Stranzenbach" <mo...@reswi.de>.
Hi,
i've build a small application using Tiles and Struts which worked very
well.
The setup of all pages is described using the tiles-defs.xml file. For all
those pages there is a single layout.jsp that contains the layout code and
inserts all other views of the application.
Last night i've extended the application and there was therequirement of a
"body" view that sometimes inserts another view on its own.
Therefore i expected to get the following situation
somePage -> maps to body->details.jsp, subview->moredetails.jsp and
layout.jsp
-- layout.jsp -> <tile:insert attribute="body">
-- body: details.jsp -> <tiles:insert attribute="subview">
-- subview: moredetail.jsp
This is the behaviour i've expected an i want to have. But if i try to
<tiles:insert> in the details.jsp Tiles throws an "subview" attribute not
found exception.
Is it *NOT* allowed to nest Tiles in an application?
Sincerley,
- Ralf
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: "tiles-definitions" is incomplete
Posted by Cedric Dumoulin <ce...@apache.org>.
You try to parse an uncomplete tiles xml configuration file. Maybe you
have added a new war file like struts-blank.war in your application ? In
Struts 1.1b2 and later, tiles are enable from struts-config.xml, with
the appropriate tags.
Hope this help,
Cedric
Tuan H. Le wrote:
>Hi,
>
>I just found this error in tomcat log, and I couldn't figure out the reason for causing this error when I don't use struts-tiles tag. Though, I didn't see this error before. I must have modified the web.xml file. Here is the error message with the web.xml file
>
>Please advise on troubleshooting this error.
>
>Thanks in advance for your help!
>Tuan
>
>org.xml.sax.SAXParseException: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+".
> at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:232)
> at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:173)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:362)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:296)
> at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1953)
> at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:878)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElement(XMLDocumentFragmentScannerImpl.java:1144)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:987)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1445)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333)
> at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:524)
> at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580)
> at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1169)
> at org.apache.commons.digester.Digester.parse(Digester.java:1514)
> at org.apache.struts.tiles.xmlDefinition.XmlParser.parse(XmlParser.java:341)
> at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFile(I18nFactorySet.java:529)
> at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFiles(I18nFactorySet.java:466)
> at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.createDefaultFactory(I18nFactorySet.java:294)
> at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:267)
> at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:215)
> at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.init(ComponentDefinitionsFactoryWrapper.java:69)
> at org.apache.struts.tiles.DefinitionsUtil.createDefinitionsFactory(DefinitionsUtil.java:276)
> at org.apache.struts.tiles.TilesPlugin.init(TilesPlugin.java:147)
> at org.apache.struts.action.ActionServlet.initApplicationPlugIns(ActionServlet.java:991)
> at org.apache.struts.action.ActionServlet.init(ActionServlet.java:458)
> at javax.servlet.GenericServlet.init(GenericServlet.java:256)
> at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:924)
> at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
> at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3342)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:3534)
> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
> at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
> at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502)
> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
> at org.apache.catalina.core.StandardService.start(StandardService.java:497)
> at org.apache.catalina.core.StandardServer.start(StandardServer.java:2191)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
> at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
> at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
> at java.lang.reflect.Method.invoke(Native Method)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
>[ERROR] Digester - -Parse Error at line 39 column 21: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+". <org.xml.sax.SAXParseException: The content of element type "tiles-definitions" is incomplete, it must match "(definition)+".>
>
>
>
>------ WEB-INF\web.xml -------
>
><?xml version="1.0" encoding="ISO-8859-1"?>
><!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>action</servlet-name>
> <servlet-class>
> org.apache.struts.action.ActionServlet
> </servlet-class>
> <init-param>
> <param-name>config</param-name>
> <param-value>
> /WEB-INF/struts-config.xml
> </param-value>
> </init-param>
> <init-param>
> <param-name>debug</param-name>
> <param-value>5</param-value>
> </init-param>
> <init-param>
> <param-name>detail</param-name>
> <param-value>2</param-value>
> </init-param>
> <init-param>
> <param-name>validate</param-name>
> <param-value>true</param-value>
> </init-param>
> <init-param>
> <param-name>mapping</param-name>
> <param-value>
> com.phs.ezhr.domain.EZHRActionMapping
> </param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <!-- Standard Action Servlet Mapping -->
> <servlet-mapping>
> <servlet-name>action</servlet-name>
> <url-pattern>*.do</url-pattern>
> </servlet-mapping>
> <!-- The Welcome File List -->
> <welcome-file-list>
> <welcome-file>/Login.jsp</welcome-file>
> </welcome-file-list>
> <!-- Struts Tag Library Descriptor -->
> <taglib>
> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
> </taglib>
> <taglib>
> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
> <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
> </taglib>
> <taglib>
> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
> </taglib>
> <resource-ref>
> <description>
> Resource reference to a factory for java.sql.Connection instances that may be used for talking to a particular database that is configured in the server.xml file
> </description>
> <res-ref-name>jdbc/ezhr</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
></web-app>
>
>
>
>------------------------------------------------------------------------
>
>--
>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>