lunes, 28 de septiembre de 2009

Instalando Glassfish en Archlinux

Hace relativamente poco he empezado mi vida como desarrollador JavaEE, como servidor de desarrollo utilizo GlassFish simplemente porque es de sun y es el que viene con Netbeans, el cual también utilizo.
En mi pc habitual de desarrollo de JavaEE me he encontrado que correr el IDE y el servidor en el mismo lugar es contraproducente para la velocidad de desarrollo, digamos, todo se tarda muchísimo, por lo cual he instalado Glassfish en una pc aparte y acá comento mi experiencia.

Primero que nada, quiero decir que glassfish no viene en los repos asíque hay que instalarlo usando yaourt.
#yaourt -S glassfish
Hay que correrlo como root porque sino el script de instalación falla y nos quedamos con el servidor a medias.

Luego de instalarlo se puede arrancar. Los dominios de glassfish se colocan en el directorio domains de la instalación (yaourt lo pone en /opt/glassfish), estoy usando el dominio por defecto ya que trae todos los servicios en los puertos estándar asíque prácticamente sale corriendo "out of the box".
Algo que extrañé es un script en /etc/rc.d para controlarlo, igual nada me impide hacerlo y lo hice.

Glassfish tiene un workaround para que funcionen las conexiones al servicio jndi y es que el nombre de host debe resolver a la ip externa de la pc, por lo cual hay que manipular el archivo /etc/hosts para que quede similar a esto:
127.0.0.1 localhost.localdomain localhost
192.168.1.8 juan-desktop
Para Controlarlo se utiliza el binario asadmin que se encuentra en el directorio bin, entonces por ejemplo mi dominio se llama domain1 (el que viene por defecto, y estas son las opciones para controlarlo):

asadmin start-domain domain1 # Arrancar el domain1 y si dado el caso, servidor también
asadmin stop-domain domain1 # Parar el dominio1 en el servidor y dado el caso, el servidor tb.

Si le añandimos la opción --debug, podemos arrancar el servidor en modo debug (lo cual sirve para los ides, entoces acá les presento mi script de shell para controlar a glassfish.

#!/bin/bash


case "$1" in

start)
/opt/glassfish/bin/asadmin start-domain domain1
;;
stop)
/opt/glassfish/bin/asadmin stop-domain domain1
;;
debug)
/opt/glassfish/bin/asadmin start-domain --debug domain1
;;

debug-restart)
$0 stop
sleep 5
$0 debug
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "usage $0 {start, stop, debug, restart, debug-restart}"
;;
esac


Los sleep se los pongo simplemente para darle un descanso a la pc entre parada y arrancada.

Conexión con Netbeans

La conexión con netbeans es ultra facil, uno se dirige a la pestaña de servicios, en el item de servidores, le da click derecho y le pone agregar nuevo servidor, aparecerá un asistente y hay que colocar los siguientes datos, aclarando que 4848 es el puerto de adminsitración por http de mi glassfish standalone.




Espero que les sirva, saludos!

No hay comentarios.:

Publicar un comentario