Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSP page is cached, can not change it, tomcat

Tags:

jsp

tomcat

I have a java server, when I change something within the JSP code, and I call the page again from the browser, my changes are not shown, the server returns the old JSP.

Any one has idea why?

like image 423
user301467 Avatar asked Apr 08 '10 20:04

user301467


2 Answers

The Jasper How-to tells that in conf/web.xml, for your org.apache.jasper.servlet.JspServlet you need:

  • development - Is Jasper used in development mode? If true, the frequency at which JSPs are checked for modification may be specified via the modificationTestInterval parameter.true or false, default true.
  • checkInterval - If development is false and checkInterval is greater than zero, background compiles are enabled. checkInterval is the time in seconds between checks to see if a JSP page (and its dependent files) needs to be recompiled. Default 0 seconds.

The <Context> element has the following properties:

  • reloadable - set to true if you want hot-deployment of classes and libs in addition to jsp files
  • antiResourceLocking - should be false

All the above was about the server. Client-side caching is another reason why you may not see newer version of pages. Simply hitting CTRL+R / CTRL + F5 often suffices.

Deciding your cache strategy is something different, and a different topic - what resources would you tell the browser to cache, and for how long. Preferably you should put the cache headers - Expires and Cache-Control (and Pragma) in a common location in your application, where you can change it quickly.

like image 129
Bozho Avatar answered Oct 16 '22 07:10

Bozho


You can also stop the application (using Tomcat WebApp Manager), and delete the app's "work" folder in the tomcat directory. This will force tomcat to rebuild the cache files using the new JSPs.

The path to the folder with cache files is something like this: /usr/apache-tomcat-XXX/work/Catalina/localhost/

Just delete the folder with your app's name, and restart the app.

like image 37
Kirill Yunussov Avatar answered Oct 16 '22 06:10

Kirill Yunussov