You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by George Christman <gc...@cardaddy.com> on 2015/01/19 20:13:26 UTC

How to build xml sitemap with cron job and make available publicly

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? Currently it's available
in the Web Pages package where it has some links in the root xml file
that points to dynamically generated xml pages, but that is putting a
huge load on the system everytime a search engine grabs them.

Now the next question is once the location has been established, how
do I get it there?

Thanks in advance,
George

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by Kalle Korhonen <ka...@gmail.com>.
On Mon, Jan 19, 2015 at 1:26 PM, Thiago H de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> On Mon, 19 Jan 2015 19:05:49 -0200, George Christman <
> gchristman@cardaddy.com> wrote:
>
>> Well that is what I'm currently doing, but the problem I'm facing is
>> the app generates millions of pages and your only allowed to have 50k
>> per sitemap.
>>
>  Not really a problem. See http://www.sitemaps.org/protocol.html, section
> Using Sitemap index files (to group multiple sitemap files).
>
>> Is there a way to get around the permission issue and write the file
>> to webapp or will I be required to have to figure out an alternate
>> approach as you suggested?
>>
>  Just write to the right folder. You were trying to write to the
> filesystem root, which wouldn't even work to get the sitemap web-accessible
> even if there was no permission problem. Make your code write the file to
> your expanded WAR root folder in Tomcat or other servlet container. This
> link, http://www.avajava.com/tutorials/lessons/how-do-i-
> get-the-location-of-my-web-application-context-in-the-file-system.html,
> should help you find the right folder.


In general, that's a bad advice. Containers are not required to expand the
WAR file at all and your files would be destroyed every time you deploy
them. I think the general accepted best practice is to pass a writable
directory root as an argument to your web application and write the files
there, for example /var/<myapp>/data. With T5, I usually supply the path
using symbol, in development environments pointing to build root and
explicitly set to an absolute path in production mode.

Kalle


>
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: How to build xml sitemap with cron job and make available publicly

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Mon, 19 Jan 2015 19:05:49 -0200, George Christman  
<gc...@cardaddy.com> wrote:

> Well that is what I'm currently doing, but the problem I'm facing is
> the app generates millions of pages and your only allowed to have 50k
> per sitemap.

Not really a problem. See http://www.sitemaps.org/protocol.html, section  
Using Sitemap index files (to group multiple sitemap files).

> Is there a way to get around the permission issue and write the file
> to webapp or will I be required to have to figure out an alternate
> approach as you suggested?

Just write to the right folder. You were trying to write to the filesystem  
root, which wouldn't even work to get the sitemap web-accessible even if  
there was no permission problem. Make your code write the file to your  
expanded WAR root folder in Tomcat or other servlet container. This link,  
http://www.avajava.com/tutorials/lessons/how-do-i-get-the-location-of-my-web-application-context-in-the-file-system.html,  
should help you find the right folder.

-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by George Christman <gc...@cardaddy.com>.
This is what I'm currently doing but it isn't working very well do to
the size of these things.

    public StreamResponse onActivate(String categoryType) {
        UrlSet urlset = new UrlSet();

        List<ZipDetail> results = crudDAO.getAll(ZipDetail.class);

        for (ZipDetail zipDetail : results) {
            Link link =
linkSource.createPageRenderLinkWithContext(VehiclesIndex.class,
categoryType, Util.getCityContext(urlEncoder, zipDetail));
            link.setSecurity(LinkSecurity.SECURE);

            SitemapXML siteMapXML = new SitemapXML();
            siteMapXML.setChangefreq(ChangeFreq.ALWAYS.toString());
            siteMapXML.setLoc(link.toAbsoluteURI());
            siteMapXML.setPriority(0.5);
            urlset.getSitemaps().add(siteMapXML);
        }

        return super.onActivate(urlset);
    }

On Mon, Jan 19, 2015 at 4:05 PM, George Christman
<gc...@cardaddy.com> wrote:
> Well that is what I'm currently doing, but the problem I'm facing is
> the app generates millions of pages and your only allowed to have 50k
> per sitemap. So that is the first major issue I'm facing which this
> library addresses. I was hoping to put this on a nightly task so a
> search engine wouldn't be triggering the process of generating this
> multiple times.
>
> Is there a way to get around the permission issue and write the file
> to webapp or will I be required to have to figure out an alternate
> approach as you suggested?
>
> On Mon, Jan 19, 2015 at 3:58 PM, Thiago H de Paula Figueiredo
> <th...@gmail.com> wrote:
>> On Mon, 19 Jan 2015 18:41:31 -0200, George Christman
>> <gc...@cardaddy.com> wrote:
>>
>>> Caused by: java.io.FileNotFoundException: /sitemap.xml (Permission denied)
>>
>>
>> Here's the cause: you're trying to write a file to the root folder of your
>> filesystem.
>>
>> Sitemaps are simple, so why don't you write a Tapestry page to generate it
>> pluse a little bit of URL rewriting to make it available at /sitemap.xml,
>> taking into account what you know about your webapp and caching the data so
>> you don't need to perform the whole process every time the /sitemap.xml URL
>> is requested? The library you're using for that is probably crawling the
>> whole website, hence causing the high load you noticed.
>>
>>
>> --
>> Thiago H. de Paula Figueiredo
>> Tapestry, Java and Hibernate consultant and developer
>> http://machina.com.br
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York



-- 
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by George Christman <gc...@cardaddy.com>.
Well that is what I'm currently doing, but the problem I'm facing is
the app generates millions of pages and your only allowed to have 50k
per sitemap. So that is the first major issue I'm facing which this
library addresses. I was hoping to put this on a nightly task so a
search engine wouldn't be triggering the process of generating this
multiple times.

Is there a way to get around the permission issue and write the file
to webapp or will I be required to have to figure out an alternate
approach as you suggested?

On Mon, Jan 19, 2015 at 3:58 PM, Thiago H de Paula Figueiredo
<th...@gmail.com> wrote:
> On Mon, 19 Jan 2015 18:41:31 -0200, George Christman
> <gc...@cardaddy.com> wrote:
>
>> Caused by: java.io.FileNotFoundException: /sitemap.xml (Permission denied)
>
>
> Here's the cause: you're trying to write a file to the root folder of your
> filesystem.
>
> Sitemaps are simple, so why don't you write a Tapestry page to generate it
> pluse a little bit of URL rewriting to make it available at /sitemap.xml,
> taking into account what you know about your webapp and caching the data so
> you don't need to perform the whole process every time the /sitemap.xml URL
> is requested? The library you're using for that is probably crawling the
> whole website, hence causing the high load you noticed.
>
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>



-- 
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Mon, 19 Jan 2015 18:41:31 -0200, George Christman  
<gc...@cardaddy.com> wrote:

> Caused by: java.io.FileNotFoundException: /sitemap.xml (Permission  
> denied)

Here's the cause: you're trying to write a file to the root folder of your  
filesystem.

Sitemaps are simple, so why don't you write a Tapestry page to generate it  
pluse a little bit of URL rewriting to make it available at /sitemap.xml,  
taking into account what you know about your webapp and caching the data  
so you don't need to perform the whole process every time the /sitemap.xml  
URL is requested? The library you're using for that is probably crawling  
the whole website, hence causing the high load you noticed.

-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by George Christman <gc...@cardaddy.com>.
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
<th...@gmail.com> wrote:
> On Mon, 19 Jan 2015 17:13:26 -0200, George Christman
> <gc...@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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>



-- 
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: How to build xml sitemap with cron job and make available publicly

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Mon, 19 Jan 2015 17:13:26 -0200, George Christman  
<gc...@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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org