Hi Thiago, I actually just stumbled upon the sitemapgen4j library and yes I'm using maven.
https://code.google.com/p/sitemapgen4j/ java doc http://sitemapgen4j.googlecode.com/svn-history/r7/site/javadoc/com/redfin/sitemapgenerator/WebSitemapGenerator.html#WebSitemapGenerator%28java.lang.String,%20java.io.File%29 It shows the following example WebSitemapGenerator wsg = new WebSitemapGenerator("http://www.example.com", myDir); if I try writing to that directory like so, File directory = new File("/"); Link link = linkSource.createPageRenderLink(Index.class); link.setSecurity(LinkSecurity.SECURE); WebSitemapGenerator wsg = new WebSitemapGenerator(link.toAbsoluteURI(), directory); I get the following exception. Any idea what I might be doing wrong? ioc.Registry Problem writing sitemap file /sitemap.xml ioc.Registry Operations trace: ioc.Registry [ 1] Handling traditional 'action' component event request for account/admin/Index:sitemap. ioc.Registry [ 2] Triggering event 'action' on account/admin/Index:sitemap TapestryModule.RequestExceptionHandler Processing of request failed with uncaught exception: org.apache.tapestry5.ioc.internal.OperationException: Problem writing sitemap file /sitemap.xml [at classpath:com/cardaddy/auto/pages/account/admin/AdminIndex.tml, line 32] org.apache.tapestry5.ioc.internal.OperationException: Problem writing sitemap file /sitemap.xml [at classpath:com/cardaddy/auto/pages/account/admin/AdminIndex.tml, line 32] at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:184) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:90) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1258) at org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:154) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1045) at org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:73) at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) at $ComponentEventRequestHandler_4f615eb941cad.handle(Unknown Source) at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:76) at $ComponentEventRequestHandler_4f615eb941cad.handle(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$37.handle(TapestryModule.java:2220) at $ComponentEventRequestHandler_4f615eb941cad.handle(Unknown Source) at $ComponentEventRequestHandler_4f615eb941a5c.handle(Unknown Source) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) at org.apache.tapestry5.internal.services.DeferredResponseRenderer.handleComponentEvent(DeferredResponseRenderer.java:45) at $ComponentRequestHandler_4f615eb941a5e.handleComponentEvent(Unknown Source) at org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) at $ComponentRequestHandler_4f615eb941a5e.handleComponentEvent(Unknown Source) at org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:55) at org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:52) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) at org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1264) at org.apache.tapestry5.internal.services.RequestOperationTracker.handleComponentEvent(RequestOperationTracker.java:47) at $ComponentRequestHandler_4f615eb941a5e.handleComponentEvent(Unknown Source) at org.tynamo.security.SecurityComponentRequestFilter.handleComponentEvent(SecurityComponentRequestFilter.java:41) at $ComponentRequestFilter_4f615eb941a5b.handleComponentEvent(Unknown Source) at $ComponentRequestHandler_4f615eb941a5e.handleComponentEvent(Unknown Source) at $ComponentRequestHandler_4f615eb941a28.handleComponentEvent(Unknown Source) at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:48) at $Dispatcher_4f615eb941a29.dispatch(Unknown Source) at $Dispatcher_4f615eb941a22.dispatch(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:304) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_4f615eb941a23.service(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:854) at $RequestHandler_4f615eb941a23.service(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:844) at $RequestHandler_4f615eb941a23.service(Unknown Source) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89) at $RequestHandler_4f615eb941a23.service(Unknown Source) at com.cardaddy.auto.services.CkeditorRequestFilter.service(CkeditorRequestFilter.java:69) at $RequestFilter_4f615eb941a1e.service(Unknown Source) at $RequestHandler_4f615eb941a23.service(Unknown Source) at com.cardaddy.auto.services.AppModule$1.service(AppModule.java:306) at $RequestFilter_4f615eb941a1d.service(Unknown Source) at $RequestHandler_4f615eb941a23.service(Unknown Source) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) at $RequestHandler_4f615eb941a23.service(Unknown Source) at $RequestHandler_4f615eb9419ff.service(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:255) at org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:59) at org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:54) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:54) at $HttpServletRequestFilter_4f615eb9419fe.service(Unknown Source) at $HttpServletRequestHandler_4f615eb941a01.service(Unknown Source) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:45) at $HttpServletRequestHandler_4f615eb941a01.service(Unknown Source) at com.cardaddy.auto.services.photo.impl.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:29) at $HttpServletRequestHandler_4f615eb941a01.service(Unknown Source) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_4f615eb9419fa.service(Unknown Source) at $HttpServletRequestHandler_4f615eb941a01.service(Unknown Source) at org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:804) at $HttpServletRequestHandler_4f615eb941a01.service(Unknown Source) at $HttpServletRequestHandler_4f615eb9419f8.service(Unknown Source) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:485) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.tapestry5.runtime.ComponentEventException: Problem writing sitemap file /sitemap.xml [at classpath:com/cardaddy/auto/pages/account/admin/AdminIndex.tml, line 32] at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1128) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:59) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1049) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1046) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82) ... 92 more Caused by: java.lang.RuntimeException: Problem writing sitemap file /sitemap.xml at com.redfin.sitemapgenerator.SitemapGenerator.writeSiteMap(SitemapGenerator.java:204) at com.redfin.sitemapgenerator.SitemapGenerator.write(SitemapGenerator.java:161) at com.redfin.sitemapgenerator.WebSitemapGenerator.write(WebSitemapGenerator.java:14) at com.cardaddy.auto.services.impl.SitemapImpl.buildSitemap(SitemapImpl.java:37) at $Sitemap_4f615eb941d92.buildSitemap(Unknown Source) at $Sitemap_4f615eb941cec.buildSitemap(Unknown Source) at com.cardaddy.auto.pages.account.admin.AdminIndex.onActionFromSitemap(AdminIndex.java:147) at com.cardaddy.auto.pages.account.admin.AdminIndex.dispatchComponentEvent(AdminIndex.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:919) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1104) ... 96 more Caused by: java.io.FileNotFoundException: /sitemap.xml (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at java.io.FileWriter.<init>(FileWriter.java:90) at com.redfin.sitemapgenerator.SitemapGenerator.writeSiteMap(SitemapGenerator.java:198) ... 105 more On Mon, Jan 19, 2015 at 2:53 PM, Thiago H de Paula Figueiredo <thiag...@gmail.com> wrote: > On Mon, 19 Jan 2015 17:13:26 -0200, George Christman > <gchrist...@cardaddy.com> wrote: > >> Hi guys, I'm looking to build nightly sitemaps and make them available >> publicly. The problem I'm facing is once I create the sitemap, where >> do I put it so that it's available publicly? > > > The root context folder (/src/main/webapp if you're using Maven). > > -- > Thiago H. de Paula Figueiredo > Tapestry, Java and Hibernate consultant and developer > http://machina.com.br > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > -- George Christman CEO www.CarDaddy.com P.O. Box 735 Johnstown, New York --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org