If possible, run two tomcat servers, with an Apache web server in front, load balancing the requests between the two.
When it comes time to upgrade, tell Apache to use only Tomcat A, then upgrade Tomcat B, tell Apache to use Tomcat B, upgrade Tomcat A, then back to using both.
No major interruption of service, if you do it right, although without session replication you're going to get some intra-session disruption. It's not as easy as it sounds, though.
As always, the lengths to which you go to minimise disruption depends on how important that disruption is. You can always make it smoother, at more expense and effort.