Существуют технологии Java, которые позволяют заменять классы на лету (например, JRebel). Но поскольку вы уже используете Glassfish, вам следует просто начать кластеризацию, встроенную в Glassfish. Вам понадобится либо 2.1, либо 3.1, так как 3.0 не поддерживает кластеризацию. В кластере Glassfish у вас есть балансировщик нагрузки (Apache, Sun Web Server, оборудование (Big IP, Coyote) и т. Д.), Распределяющий нагрузку между узлами кластера. Если вы хотите обновить приложение, вы можете сделать это технически по одному узлу за раз. Настройка кластера - не самая простая вещь в мире, но она выполнима и принесет вам большие преимущества. Вы сможете масштабировать нагрузку, добавляя новое оборудование и даже используя облачные сервисы Amazon (или кто бы то ни было). Вы сможете поддерживать работу своего сайта даже в случае сбоя оборудования на одном из узлов.
Лично я нахожусь в процессе преобразования из Glassfish 2.1 в 3.1. Пока что мне больше нравится управление кластером Glassfish 3.1, но я не могу лично поручиться за то, как оно будет работать в производстве, хотя у меня большие ожидания.
http://download.oracle.com/docs/cd/E18930_01/html/821-2432/gktqx.html#gktob