Fortunately now Tomcat 7 has this revolutionary solution http://tomcat.apache.org/tomcat-7.0-doc/config/context.html.
All you need to do is to
1. keep your old app foo.war untouched
2. name your new version of app to foo##0001.war and upload to webapps folder
The old session will use foo.war, and new user will use foo##0001.war. Here are some details:
- If no session information is present in the request, use the latest version.
- If session information is present in the request, check the session manager of each version for a matching session and if one is found, use that version.
- If session information is present in the request but no matching session can be found, use the latest version.
If you name it like foo##11.war and foo##2.war, foo##2.war will be considered newer version than foo##11.war
Awesome. We'll still need to restart the server or reload the web application when we make changes to our database schema, but otherwise this is just what we need. Thanks for posting it.
ReplyDelete