Assuming you have a productive java application and don't want to have (even small) downtimes for software updates (including updated .class files) to take effect.
What infrastructure / server / tools do you use to achieve this?
Any experiences are much appreciated! Could be anything like two servers where one is updated while the other does the "old" job, features of e.g. a Tomcat server or tools enabling this.