wood burning stoves
The moose likes JSP and the fly likes How to precompile all JSPs at once in Tomcat Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "How to precompile all JSPs at once in Tomcat" Watch "How to precompile all JSPs at once in Tomcat" New topic

How to precompile all JSPs at once in Tomcat

Aaron Beverly

Joined: Sep 10, 2003
Posts: 19
Does anyone know if there is a way to make Tomcat (v. 4.1.24) compile all of the JSPs in a given context at one time, say, for instance, at server startup or perhaps upon some explicit command?
It would be nice if when I make changes and deploy them to a live webapp, I could just go ahead and tell tomcat to precompile everything it finds in the webapp context, prior to any particualr request for a JSP.
Thanks in advance for any help!
Aaron L. Beverly
Anthony Watson
Ranch Hand

Joined: Sep 25, 2003
Posts: 327
You don't need any Tomcat specific functionality to get all of your servlets/jsp pages translated and compiled before a request is ever made. You should use the deployment descriptor (web.xml file) of your web application. Simply use the tag <load-on-startup>1</load-on-startup> under the <servlet> element. For a jsp page, it looks like this:
You should put the load-on-startup element in every servlet element where the body content of the tag is the order that the servlet should be translated/compiled.

Anthony W.<br />MCP, SCJP 1.4, SCJD, SCWCD 1.3, SCWCD 1.4, SCBCD
Sainudheen Mydeen
Ranch Hand

Joined: Aug 18, 2003
Posts: 218
Check this link
Bear Bibeault
Author and ninkuma

Joined: Jan 10, 2002
Posts: 63224

Hmmm, seems that the web.xml route would be completely unweildly for anything but a rather trivial web application. Most of mine tend to have in the hundreds of JSP pages.
I had started writing a 'web monkey' servlet to try to hunt down and hit every JSP, but I never really finished it. Also, most of the JSPs expect a controller to forward to them, so a direct hit may cause them to compile, but tends to generate a bunch of errors that I'd rather not have clogging the log files.
The Ant script is a great idea, but there's still the errors-in-the-log problem. Anybody got a wifty idea for that one?
[ September 26, 2003: Message edited by: Bear Bibeault ]

[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Aaron Beverly

Joined: Sep 10, 2003
Posts: 19
Thanks for the suggestions. Yeah, the load-on-startup solution is really not practical in my case, since I have about 1,000 JSPs in this web-app. Thanks, tho for the link to the script that precompiles JSPs. I will check it out. Hopefully it can do the trick.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: How to precompile all JSPs at once in Tomcat
jQuery in Action, 3rd edition