If you can't stop the application even for a moment then you probably need to:
- To run both versions at the same time.
- Direct new users to the new version and allow existing user sessions to continue against the old version
- To be able to detect that the old version is no longer in use and hence can be stopped.
Each of the above is, in principle, possible but specifics of the applcations can present serious obstacles.
Many organisations simply take the view that there can be a small hiatus in service, for example at 2:00 AM on a Sunday morning. They warn users "system going down", then stop the old version and start the new. This is much simpler than providing 100% up-time.
One trick with this approach is that it may be possible (I know it can be done in WebSphere, don't know about JBOSS) to deply the new version of the app but not activate it. When an app takes several minutes to deploy and start this can shorten the down time.