Soy bastante nuevo en Java EE y he estado luchando con la lentitud del proceso de implementación, y me pregunto si estoy haciendo algo mal. Tengo experiencia con Django donde los cambios en el código ocurren inmediatamente, y parece que las aplicaciones Java EE de implementación en caliente son un poco confusas: hay varias cosas que afirman implementar en caliente (Glassfish, Eclipse manic hotdeploy, Jetty hotdeploy, JRebel, etc.)Redesplegar aplicaciones Java EE inmediatamente
Mi proyecto es un proyecto de Maven y estoy usando Netbeans para implementar. El sitio usa los marcos Spring, JSF e Hibernate.
En Netbeans, Desplegar al guardar, de acuerdo con la siguiente captura de pantalla parece estar habilitado, pero no es posible hacer clic/desmarcar ya que dice obtener la información de mi pom.xml (aunque no existe tal campo en mi pom. .xml (solo dependencias)).
Ahora, los cambios en algunos archivos parecen ser efectivos inmediatamente. Estos incluyen: - archivos JSF - Los archivos estáticos
Cambios a continuación requieren el despliegue: - Cualquier archivo XML - archivadas las propiedades, incluso propiedades de localización archivos de - Cualquier archivo java
Cambios a los que me requieren implementar manualmente y volver a implementar lleva medio minuto aunque actualmente solo tengo 2-3 clases, básicamente una única clase de usuario y una clase de autorización. El proyecto solo permite inicios de sesión en este momento, y a pesar de esto, la compilación tarda unos segundos; y el contenedor (Glassfish) parece consumir alrededor de 600 MB de RAM e incluso da errores de PermGen después de unas pocas implementaciones y necesito matar el proceso de Java usando el Administrador de tareas. (He leído que esto está relacionado con el colector de basura que se escapa después de cada redistribución, e incluso he usado jhat para generar un perfil, pero se me presentó una lista de miles de clases, mis clases, Spring, Hibernate, etc.)
También he oído hablar de jrebel y traté de ejecutarlo, pero parece que no es compatible con mi versión de Netbeans (7.0) y, aunque parece que se ejecuta, cualquier modificación de un archivo java aún requiere una nueva implementación.
¿Hay algo que pueda hacer para solucionar estos problemas, o es normal en Java EE esperar alrededor de 1 minuto después de cada cambio en cualquier archivo Java? Este problema mata la productividad de manera significativa.
Aquí está mi salida de Glassfish al desplegar la aplicación: http://pastebin.com/7FhZ6AVh
"Aplicar cambios de código" es hotswap. No funcionará si está cambiando una firma de clase. – Daniel