Revista Economía

Netbeans con Glassfish no permite el clean

Publicado el 05 mayo 2015 por Elvenbyte @elvenbyte

glassfishnetbeansYa sé que Netbeans, al igual que Eclipse, es un come RAM de los peores, y que Glassfish como servidor web no es lo más aconsejable. Pero hace poco me he metido con Activiti y BPMN (Business Process Modeling), y sinceramente era la forma más lógica para empezar a jugar con esta tecnología.

Más pronto que tarde, empecé a encontrarme con los problemas de compilación para generar los WAR que desplegaría en el Glassfish. Me había pasado antes que por alguna razón, la carpeta de Build se me quedaba bloqueada, pero no con tanta frecuencia.

Al principio, al no saber qué ocurría, me limitaba a apagar el Netbeans, y el problema se solucionaba. Pero al ser tan frecuentes, pronto me pregunté qué era lo que bloqueaba la carpeta Build de forma tan catastrófica.

Me hice con el Unlocker, no por desbloquear y ya está, sino porque te dice quién está bloqueando los archivos, y mira por dónde que se trataba del propio Glassfish.

No es problema de memoria, por todo lo que consume Netbeans, sino un problema del propio Glassfish, como ya digo, que aún no ha sido arreglado, y que parece ocurrir prácticamente en todas las versiones (al menos con las que he probado yo, que son todas las que deja instalar Netbeans, en la versión 8.0.2).

Sin embargo no podía quedarme en el qué, y me puse a investigar el por qué, llegando a la conclusión, tras algunas pruebas con código real, que ocurre porque al desplegar el WAR el servidor coge el que acaba de generarse, lo despliega, pero ya no lo suelta. Es algo que podría atribuirse al garbage collector del servidor, o mejor dicho a la falta de uso por parte del código de Glassfish: para mi que deja el WAR en la memoria y no libera luego esta, cuando ya está desplegado y no lo necesita más.

Como solución provisional podríamos apagar el Glassfish desde Netbeans cuando esto ocurra. Pero como mejor solución he encontrado que instalando y ejecutando Glassfish fuera de Netbeans, y agregarlo después, como haríamos con un Apache o un Weblogic, el bloqueo no se produce. Bastaría con enlazarlo después desde Servidores.

Ya sé que esto puede contradecir un poco lo que digo de que es cosa del Glassfish, pero en realidad lo que ocurre es que el Glassfish que se instala con el Netbeans debe de ser una versión ensuciada por los de Netbeans, y por eso se comporta así.

Esperemos que el problema se corrija en futuras versiones.

Share

Volver a la Portada de Logo Paperblog