Opps... I meant to say: <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
On Sun, Apr 8, 2012 at 4:30 PM, Ken McWilliams <[email protected]>wrote: > NEVER MIND... You guys already did all the work! > > > <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> > > I think there are a lot of struts2 people who would like to use these > features? How do I contribute to the Apache tiles wiki? I want to create a > minimal struts2 example. Showing struts2 wild card support and OGNL (since > it is now all working... and was quite obvious once I looked). > > > On Sun, Apr 8, 2012 at 3:59 PM, Ken McWilliams > <[email protected]>wrote: > >> Issue getting tiles working in Tiles 2.2.2 : "PWC1223: Path >> classpath*:META-INF/**/tiles*.xml does not start with '/'" >> >> Maven is used for the build. >> >> Here is the stack trace: >> >> SEVERE: java.net.MalformedURLException: PWC1223: Path >> classpath*:META-INF/**/tiles*.xml does not start with '/' >> at >> org.apache.catalina.core.StandardContext.getResource(StandardContext.java:6922) >> at >> org.apache.catalina.core.ApplicationContext.getResource(ApplicationContext.java:382) >> at >> org.apache.catalina.core.ApplicationContextFacade.getResource(ApplicationContextFacade.java:260) >> at >> org.apache.tiles.servlet.context.ServletTilesApplicationContext.getResource(ServletTilesApplicationContext.java:100) >> at >> org.apache.tiles.servlet.context.ServletTilesApplicationContext.getResources(ServletTilesApplicationContext.java:106) >> at >> com.kenmcwilliams.tiles.extras.complete.CompleteAutoloadTilesContainerFactory.getSourceURLs(CompleteAutoloadTilesContainerFactory.java:223) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createLocaleDefinitionDao(BasicTilesContainerFactory.java:298) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createDefinitionsFactory(BasicTilesContainerFactory.java:242) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createContainer(BasicTilesContainerFactory.java:104) >> at >> org.apache.tiles.startup.AbstractTilesInitializer.createContainer(AbstractTilesInitializer.java:124) >> at >> org.apache.tiles.startup.AbstractTilesInitializer.initialize(AbstractTilesInitializer.java:70) >> at >> org.apache.tiles.web.startup.AbstractTilesListener.contextInitialized(AbstractTilesListener.java:62) >> at >> org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750) >> >> Here is the Web.xml >> >> <?xml version="1.0" encoding="UTF-8"?> >> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> >> <listener> >> >> <listener-class>com.kenmcwilliams.tiles.web.startup.TilesListener</listener-class> >> </listener> >> <filter> >> <filter-name>struts2</filter-name> >> >> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> >> </filter> >> <filter-mapping> >> <filter-name>struts2</filter-name> >> <url-pattern>/*</url-pattern> >> </filter-mapping> >> </web-app> >> >> From the above here is my >> >> package com.kenmcwilliams.tiles.web.startup; >> >> import >> com.kenmcwilliams.tiles.extras.complete.CompleteAutoloadTilesContainerFactory; >> import org.apache.tiles.TilesApplicationContext; >> import org.apache.tiles.factory.AbstractTilesContainerFactory; >> import org.apache.tiles.startup.AbstractTilesInitializer; >> import org.apache.tiles.startup.TilesInitializer; >> import org.apache.tiles.web.startup.AbstractTilesListener; >> >> /** >> * Listener for the initialization of the Tiles container. >> */ >> public class TilesListener extends AbstractTilesListener { >> @Override >> protected TilesInitializer createTilesInitializer() { >> return new AbstractTilesInitializer() { >> >> @Override >> protected AbstractTilesContainerFactory >> createContainerFactory(TilesApplicationContext context) { >> return new CompleteAutoloadTilesContainerFactory(); >> } >> }; >> } >> } >> >> >> Note: I am using my own CompleteAutoloadTilesContainerFactory to try and >> get around this issue, I did this after reading: >> https://issues.apache.org/jira/browse/TILES-493 (but I am using tiles >> 2.2.2 so that shouldn't affect me, but I took the advice there and had the >> container check if those collections were null and if so initialised >> them). if I use >> org.apache.tiles.extras.complete.CompleteAutoloadTilesContainerFactory >> then: I still get the same error... >> >> Caused by: org.apache.tiles.definition.DefinitionsFactoryException: >> Cannot load definition URLs >> at >> org.apache.tiles.extras.complete.CompleteAutoloadTilesContainerFactory.getSourceURLs(CompleteAutoloadTilesContainerFactory.java:244) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createLocaleDefinitionDao(BasicTilesContainerFactory.java:298) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createDefinitionsFactory(BasicTilesContainerFactory.java:242) >> at >> org.apache.tiles.factory.BasicTilesContainerFactory.createContainer(BasicTilesContainerFactory.java:104) >> at >> org.apache.tiles.startup.AbstractTilesInitializer.createContainer(AbstractTilesInitializer.java:124) >> at >> org.apache.tiles.startup.AbstractTilesInitializer.initialize(AbstractTilesInitializer.java:70) >> at >> org.apache.tiles.web.startup.AbstractTilesListener.contextInitialized(AbstractTilesListener.java:62) >> at >> org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750) >> at >> com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:550) >> at >> org.apache.catalina.core.StandardContext.start(StandardContext.java:5366) >> ... 39 more >> Caused by: java.net.MalformedURLException: PWC1223: Path >> classpath*:META-INF/**/tiles*.xml does not start with '/' >> at >> org.apache.catalina.core.StandardContext.getResource(StandardContext.java:6922) >> at >> org.apache.catalina.core.ApplicationContext.getResource(ApplicationContext.java:382) >> at >> org.apache.catalina.core.ApplicationContextFacade.getResource(ApplicationContextFacade.java:260) >> at >> org.apache.tiles.servlet.context.ServletTilesApplicationContext.getResource(ServletTilesApplicationContext.java:100) >> at >> org.apache.tiles.servlet.context.ServletTilesApplicationContext.getResources(ServletTilesApplicationContext.java:106) >> at >> org.apache.tiles.extras.complete.CompleteAutoloadTilesContainerFactory.getSourceURLs(CompleteAutoloadTilesContainerFactory.java:233) >> >> >
