JBoss 3.0.0 Tomcat 4.1.12 Struts 1.1beta
btharper Oct 8, 2002 7:19 PMHi,
I am having problems using struts (more precisely tiles) with JBoss-3.0.3_Tomcat-4.1.12.
My application uses the following in the struts-config.xml file.
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
<set-property property="definitions-debug" value="0" />
<set-property property="definitions-parser-details" value="0" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
The tiles-defs.xml file contains the following (cut down):
<tiles-definitions>
I have traced the error down to the class loader being used by commons-digester, when it creates the XmlDefinition class. It does not seem to be the class loader I would expect for my web app, i.e. the WebappClassLoader. Should the digester be set to use the Thread.currentThread().getContextClassLoader()?
The CL I get is:
org.jboss.mx.loading.UnifiedClassLoader@17e4dee{ url=file:/E:/My Projects/EvoDev/jboss-3.0.3_tomcat-4.1.12/server/evo/tmp/deploy/tomcat-4.1.x/server/lib/commons-digester.jar/79.commons-digester.jar }
The struts.jar is definitely in the WEB-INF/lib dirctory.
The error is as follows:
java.lang.ClassNotFoundException: org.apache.struts.tiles.xmlDefinition.XmlDefinition
at org.jboss.mx.loading.UnifiedLoaderRepository2.loadClass(UnifiedLoaderRepository2.java:166)
at org.jboss.mx.loading.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:283)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:252)
at org.apache.commons.digester.Digester.startElement(Digester.java:1237)
at org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1284)
at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1806)
at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1182)
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
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:3341)
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.jboss.web.catalina.EmbeddedCatalinaService41.createWebContext(EmbeddedCatalinaService41.java:427)
at org.jboss.web.catalina.EmbeddedCatalinaService41.performDeploy(EmbeddedCatalinaService41.java:302)
at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:300)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:802)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:794)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:616)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:580)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:564)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
at org.jboss.jmx.adaptor.rmi.RMIAdaptorImpl.invoke(RMIAdaptorImpl.java:283)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
Any help much appreciated,
Theo