viernes, 2 de diciembre de 2011

Instalar e integrar Glassfish 3 en eclipse Indigo

El motivo para integrar Glassfish en eclipse es por la comodidad tener en nuestro IDE el control general del servidor. Podremos arrancarlo y pararlo sin tener que utilizar el comando asadmin así como realizar todas las acciones generales sobre este.
Para un desarrollador, que despliega su aplicación muchas veces al día, no es raro encontrarse con el error:

java.lang.OutOfMemoryError: PermGen space

Y la manera más rápida y cómoda de solucionarlo es rearrancar el Glassfish desde eclipse. Este es un ejemplo de la comodidad que nos puede aportar el integrarlo, pero es obvio que para temas avanzados será necesario recurrir a la línea de comandos.

Instalar Glassfish 3

Glassfish 3 trae grandes diferencias con respecto a Glassfish 2.1. 
Una diferencia que podemos encontrar es la de su filosofía. Mientras que Glassfish 2.1 tenía un DAS (domain administration server) por cada nodo (dominio) y de cada nodo n instancias, en Glassfish 3 tenemos un DAS (domain administration server) que gestiona n nodos y de cada nodo podemos tener n instancias.
Otras diferencias importantes son las de que mientras que en Glassfish 2.1 tenemos JPA 1 con Oracle TopLink en Glassfish 3 tenemos por defecto JPA 2 con  EclipseLink. Además tenemos que tener en cuenta que mientras Glassfish 2.1 tenía EJB 3.0 Glassfish tiene EJB 3.1

Para empezar con la instalación lo primero que tenemos que hacer es descargar el Glassfish 3 desde aquí.
El archivo glassfish-3.1.1-ml.zip que nos hemos descargado lo tenemos que descomprimir. En window lo descomprimimos con winzip o winrar y en Linux esto lo podemos hacer con Ark si preferimos el entorno de escritorio, o con el comando unzip desde la línea de comandos.
Si preferimos la segunda opción en linux, tenemos que instalar el paquete unzip en Debian. Para esto ejecutamos los comandos:
$ apt-get update

$ apt-get install unzip

Con esto ya tenemos el paquete instalado en nuestro sistema y solo nos queda descomprimirlo completando la sentencia con el directorio de destino donde vallamos a querer que esté:

$ unzip glassfish-3.1.1-ml.zip -d directorio_destino

Esto nos generará, en el directorio de destino, la carpeta glassfish3 que contiene nuestro glassfish 3.
 Para comprobar si se ha descomprimido correctamente y que el servidor que nos hemos descargado está operativo, lo arrancamos a mano. Para arrancarlo entramos en línea de comandos y nos situamos en el directorio  glassfish3/bin (entendiendo glassfish3 como el directorio raíz donde hemos descomprimido el Glassfish 3) y en él ejecutamos el comando:
./asadmin start-domain domain1

Si el comando se ejecuta correctamente tiene que salir algo similar a lo siguiente:
 
rencinar@OPT360:~/xyz/servers/glassfish3/bin$ ./asadmin start-domain domain1

Esperando a que se inicie domain1 ......
Se ha iniciado correctamente domain : domain1
domain Ubicación: /home/rencinar/xyz/servers/glassfish3/glassfish/domains/domain1
Archivo de registro: /home/rencinar/xyz/servers/glassfish3/glassfish/domains/domain1/logs/server.log
Puerto de administración: 4848
El comando start-domain se ha ejecutado correctamente.

Entonces tendremos el servidor arrancado y funcionando. Para certificarlo entramos en localhost:8080 en nuestro browser (en mi caso uso firefox) y nos tiene que mostrar lo siguiente:

 Y también en localhost:4848 (consola de administración) para poder certificar que esta 100% operativo, nos tiene que mostrar lo siguiente:



Tras esto tenemos un glassfish 3 completamente operativo, así que lo paramos para a continuación proceder a su integración con eclipse.

Para pararlo entramos en línea de comandos, igual que antes, y nos situamos en el directorio  glassfish3/bin (entendiendo glassfish3 como el directorio raíz donde hemos descomprimido el Glassfish 3) y en él ejecutamos el comando:

./asadmin stop-domain domain1
 
Si el comando se ejecuta correctamente tiene que salir lo siguiente:

rencinar@OPT360:~/xyz/servers/glassfish3/bin$ ./asadmin stop-domain domain1

Esperando a que se detenga el dominio .....

El comando stop-domain se ha ejecutado correctamente.


Integrar Glassfish 3 en eclipse

Para integrar el Glassfish en eclipse, lo primero que tenemos que hacer es sacar la ventana fast view servers en eclipse. Para hacer esto tenemos que ir, en la barra de herramientas a window->show view->Other.



Filtramos en las vistas por la palabra server y seleccionamos la fast view servers con nombre servers.



Tras esto tendremos la vista de los servidores en eclipse y podemos proceder a integrar el Gassfish en eclipse.
Para añadir un nuevo servidor en eclipse tenemos que pinchar con el botón secundario en dicha vista y seleccionar new->server.


Entonces se nos muestra la pantalla donde vamos a configurar el servidor. Lo primero que tenemos que hacer es seleccionar de la lista el servidor Glassfish->glassfish 3. 



Si no lo encontrásemos tenemos que irnos a Download aditional server adapter, donde se nos muestran la lista de adaptadores que no tenemos instalados. Seleccionamos el correspondiente a Glassfish 3, pinchamos en next y tras aceptar la licencia lo tendremos disponible en la lista general.



Ahora que tenemos el servidor en la lista de new server,lo seleccionamos y le asignamos los siguientes campos:
  • Server host name: que puede ser una ip o un nombre de máquina (siempre que esté metido en el DNS).
  • Server name: el nombre con el que nos aparecerá en eclipse.
  • Server rune time enviromente que es Glassfish 3

Además podemos seleccionar una JRE diferente a la de por defecto. Para realizarlo pinchamos en add configure runetime enviroment. Seleccionamos de la lista la JRE que queremos tener y el path donde tenemos el Gassfish 3 y pinchamos en finish.




Seleccionamos next y en la siguiente pantalla de configuración  le indicamos donde va a estar el dominio1, por defecto lo pondrá en glassfish3/glassfish/domains/domain1, añadimos un usuario y una contraseña y aceptamos.

Ya tenemos disponible el Glassfish3 en la server window. Si pinchamos sobre él con el botón secundario nos mostrará múltiples acciones que podemos realizar sobre el servidor, y entre otras, realizar un stop o start del mismo.


No hay comentarios:

Publicar un comentario