Cómo instalar GlassFish en Ubuntu 20.04 LTS

En esta ocasión veremos cómo instalar GlassFish en Ubuntu 20.04 LTS Focal Fossa paso a paso, de forma que puedas utilizar tu servidor o VPS Ubuntu para desplegar aplicaciones Java en línea basadas en las especificaciones de la plataforma Jakarta EE 9.1.

Antes de instalar Glassfish en Ubuntu 20.04 LTS

Para poder seguir los pasos de esta guía de instalación de GlassFish en Ubuntu 20.04 es importante cumplir los siguientes requisitos mínimos:

  • Un sistema Ubuntu 20.04 LTS Focal Fossa actualizado.
  • Entorno de desarrollo de Java 11 (JDK) o superior (sirven las versiones 17 y 18ea).
  • Acceso a línea de comandos con un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno necesario, puedes consultar previamente nuestra guía de instalación de Java en Ubuntu 20.04 LTS, prestando especial atención a la versión requerida.

También necesitaremos alguna herramienta que obtendremos desde los repositorios de Ubuntu 20.04, por lo que actualizamos las listas de paquetes:

~$ sudo apt update

E instalamos los paquetes necesarios:

~$ sudo apt install -y unzip wget

Cómo descargar Glassfish para Ubuntu 20.04 LTS

Vamos a descargar GlassFish para Ubuntu 20.04 LTS desde el sitio web del proyecto, donde buscaremos el último lanzamiento oficial (el que está etiquetado como «Latest«), descartando las versiones de prueba más recientes (etiquetadas como «Pre-release«):

como descargar glassfish para ubuntu 20.04 lts focal fossa

De entre las descargas disponibles elegiremos el paquete con formato .zip, que podemos descargar desde el navegador o desde consola con alguna herramienta como wget:

~$ wget https://github.com/eclipse-ee4j/glassfish/releases/download/6.2.5/glassfish-6.2.5.zip

Cómo instalar GlassFish en Ubuntu 20.04 LTS

Para instalar GlassFish en Ubuntu 20.04 LTS Focal Fossa en primer lugar descomprimiremos el archivo que acabamos de descargar en su ubicación definitiva:

~$ sudo unzip -q glassfish-6.2.5.zip -d /opt/

Con solo este paso, la plataforma queda lista para ser manejada a través de sus comandos de administración. Por ejemplo, para iniciar la plataforma:

~$ sudo /opt/glassfish6/bin/asadmin start-domain

Configurar el firewall de Ubuntu 20.04 para GlassFish

Si tienes activado el firewall UFW de Ubuntu 20.04 y quieres acceder a GlassFish desde red, será necesario añadir algunas reglas sobre los puertos principales.

Para el sitio web se trataría sel puerto 8080 TCP si trabajamos con conexiones HTTP estándar:

~$ sudo ufw allow 8080/tcp

Si queremos acceder a las aplicaciones con conexiones seguras SSL, será el puerto 8181 el que utilicemos:

~$ sudo ufw allow 8181/tcp

Y para la consola de administración, el puerto 4848 TCP:

~$ sudo ufw allow 4848/tcp

Cómo probar GlassFish

Con la plataforma iniciada, vamos a acceder a GlassFish en Ubuntu 20.04 desde un navegador, para lo que indicaremos la dirección (IP, nombre DNS, dominio, etc.) especificando el puerto correspondiente.

Por ejemplo, la máquina Ubuntu 20.04 sobre la que hemos desarrollado este tutorial es accesible en el subdominio ubuntu2004.local.lan, así que para acceder al sitio principal sobre el puerto 8080, podemos utilizar http://ubuntu2004.local.lan:8080 como URL:

como instalar glassfish en ubuntu 20.04 lts focal fossa

Para detener la plataforma usaremos de nuevo el comando asadmin:

~$ sudo /opt/glassfish6/bin/asadmin stop-domain

Cómo configurar el servicio GlassFish en Ubuntu 20.04

Aunque ya hemos visto como iniciar y detener la plataforma de forma manual, puede ser interesante configurar el servicio GlassFish en Ubuntu 20.04 LTS para tenerlo siempre disponible. Para ello debemos crear un archivo de unidad para Systemd:

~$ sudo nano /etc/systemd/system/glassfish6.service

El contenido puede ser similar al siguiente:

[Unit]
Description = GlassFish Server 6.2.5 para Ubuntu 20.04
After = syslog.target network.target

[Service]
Type = forking
ExecStart=/opt/glassfish6/bin/asadmin start-domain
ExecReload=/opt/glassfish6/bin/asadmin restart-domain
ExecStop=/opt/glassfish6/bin/asadmin stop-domain

[Install]
WantedBy = multi-user.target

Una vez guardados los cambios podemos iniciar el nuevo servicio glassfish6.service o glassfish6, si prefieres el nombre corto:

~$ sudo systemctl start glassfish6

Para comprobar el estado de este servicio en cualquier momento podemos hacerlo con el comando systemctl status glassfish6:

servicio glassfish en ubuntu 20.04 lts focal fossa

Si queremos que GlassFish inicie con cada arranque de Ubuntu 20.04, debemos habilitarlo:

~$ sudo systemctl enable glassfish6

Cambio de contraseña de administrador

El usuario administrador por defecto, admin, necesita una contraseña para poder iniciar sesión, así que debemos crearla con el comando asadmin:

~$ sudo /opt/glassfish6/bin/asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password>
Enter the new admin password>
Enter the new admin password again>
Command change-admin-password executed successfully.

Debemos introducir el usuario administrador, admin en este caso, la contraseña actual (ninguna, ya que por defecto no tiene), y la nueva contraseña y su confirmación.

Acceso desde red a la consola de administración

Por defecto el acceso desde red a la consola de administración está desactivado, por lo que si nos interesa este tipo de acceso debemos activarlo con asadmin:

~$ sudo /opt/glassfish6/bin/asadmin enable-secure-admin
Enter admin user name>  admin
Enter admin password for user "admin">
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

Indicamos el administrador para el que activamos la consola y su contraseña.

Habrá que reiniciar el servicio para activar los cambios:

~$ sudo systemctl restart glassfish6

Cómo acceder a la consola de administración de GlassFish

Por fin podemos acceder remotamente a la consola de administración de GlassFish desde un navegador de una máquina en red. Esta consola de administración funciona bajo protocolo HTTP si está en modo local, y bajo HTTPS si se accede por red.

Siguiendo con el ejemplo del tutorial, como accedemos desde red a la consola mediante protocolo HTTPS en el puerto 4848 TCP, utilizaremos https://ubuntu2004.local.lan:4848 como URL:

accediendo a glassfish en ubuntu 20.04 lts

Como los certificados empleados para cifrar la conexión son autofirmados, normalmente los navegadores web mostrarán un aviso de que no es posible comprobar la identidad del emisor. Esto es normal, así que podemos continuar con la conexión.

Tras unos instantes se mostrará la página de inicio de sesión:

glassfish para ubuntu 20.04 lts focal fossa

Una vez introducido el nombre del usuario administrador y su correspondiente clave de acceso, se mostrará la página principal de la consola de administración de GlassFish:

glassfish en ubuntu 20.04 lts focal fossa

Cómo desplegar una aplicación

Para desplegar una aplicación, desde la página «Common Tasks» seleccionamos «Deploy an Application«:

desplegar aplicaciones en glassfish sobre ubuntu 20.04 lts

Usaremos el control para seleccionar archivo y buscaremos localmente el archivo .war que queremos cargar en la plataforma.

Una vez seleccionado, podemos configurar algunos aspectos como tipo de aplicación, directorio de contexto, nombre, etc. Para finalizar el proceso usaremos el botón «OK«.

Se presenta la página de aplicaciones, apareciendo en el listado la que acabamos de cargar:

Si queremos probar la aplicación usaremos el enlace «Launch» de la columna «Action» que abrirá una nueva página que mostrará los enlaces a la aplicación, tanto la versión HTTP estándar como la conexión segura SSL:

Si estás usando nombres DNS o FQDN en lugar de dirección IP para acceder, podrás observar que los enlaces construidos por GlassFish sólo contienen el nombre de la máquina Ubuntu 20.04, pero no el dominio (local.lan en este ejemplo). Si tu servicio DNS está bien configurado se podrá acceder igualmente a la aplicación, aunque también podemos modificar y completar la URL manualmente.

En cualquier caso, al abrir cualquiera de los enlaces se mostrará la aplicación que acabamos de instalar:

¡Así de fácil!

Conclusión

Ahora que sabes cómo instalar GlassFish en Ubuntu 20.04 LTS Focal Fossa ya puedes probar tus propios desarrollos o satisfacer los requerimientos de aplicaciones de terceros de forma rápida y fácil, con toda la potencia que te ofrece esta plataforma que cumple con toda la especificación de Jakarta EE 9.1.

¡Apoya comoinstalar.me!

¿Ya puedes desplegar aplicaciones Java sobre tu máquina Ubuntu 20.04 mediante GlassFish gracias a esta pequeña guía? Si es así y quieres agradecérmelo cualquier pequeña contribución aporta mucho al mantenimiento de este sitio y la creación de más y mejores tutoriales.

Puedes ayudar dejando una propina de tan sólo 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarme a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (3 votos)

10 comentarios en «Cómo instalar GlassFish en Ubuntu 20.04 LTS»

  1. Hola.
    Tengo instalado GlassFish 5 en una máquina virtual con otro sistema operativo.
    Después de seguir todos los pasos, al cambiar la contraseña de admin y ejecutar enable-secure-admin (he reiniciado GlassFish), al intentar acceder desde otro PC con la IP de la máquina virtual:
    172.16.185.129:8080 funciona, dice que el servidor está en marcha
    172.16.185.129:4848 me da el error:

    Conexión segura fallida
    Ha ocurrido un error al conectar con 172.16.185.129:4848. PR_END_OF_FILE_ERROR

    Y no puedo entrar a la página de configuración.

    Responder
    • ¡Hola, Juan! Echa un vistazo al tutorial para el sistema operativo que estás usando, por si te sirviera de algo. Si es un problema con Java, a veces es mejor detener en lugar de reiniciar, y comprobar que la plataforma se ha detenido y liberado los puertos antes de volver a iniciarla. Si no lo ha hecho conviene matar el proceso de Java y volver a iniciar. No sé si este será tu problema, ya que lamentablemente parace ser que no están disponibles los binarios en la página de descargas para la versión que comentas.

      Responder
      • Concuerdo con Juan, hice lo posible con el GlassFish 5.1 y Java 8 y da el error para actualizar «Enable secure admin» y reiniciar, me sale error, ¿alguna solución? ¿Y cómo sacaste el nombre https://ubuntu2004.local.lan:4848/??? Ubuntu2004 me sale error, sólo jala localhost:4848 e IP:4848, ¿me puedes indicar con modificar el local? Por favor.

        Responder
        • Hola, Fernando. Como en el caso de Juan, la versión 5 de GlassFish es problemática a la hora de reiniciar la plataforma, siendo mejor detenerla (stop) y después volverla a iniciar (start). En caso de presentarse el error hay que matar el proceso de Java y esperar a que los puertos queden liberados antes de volver a levantar GlassFish. En los últimos lanzamientos (que corren sobre Java JDK 11) no se suele presentar este problema.
          Por otro lado, el nombre de máquina FQDN forma parte de la configuración de red e implica la existencia de un servidor DNS en la misma. En nuestro caso, local.lan es el dominio de la red de trabajo de comoinstalar.me, y ubuntu2004 el nombre la máquina Ubuntu 20.04 LTS sobre la que hemos preparado este tutorial de GlassFish 6 (y otros), por tanto el nombre ubuntu2004.local.lan es el FQDN de dicha máquina y sólo es accesible desde nuestra red. En tu caso tendrías que configurar tu propio sistema de nombres para poder usarlo de forma similar.

          Responder
  2. El 8 JDK, pero se ve que instaló algo mal porque volví para atrás con una imagen del Java ya instalado y lo volví a instalar y salió andando.

    Mil gracias.

    Responder
  3. Hola. Al querer iniciar el servicio me muestra el siguiente error:

    [root@vps-1949509-x ~] # sudo /opt/glassfish6/bin/asadmin start-domain
    JVM failed to start: com.sun.enterprise.admin.launcher.GFLauncherException: The server exited prematurely with exit code 1.
    Before it died, it produced the following output:

    Command start-domain failed.

    ¿Sabes qué puede ser?

    Mil gracias de antemano.

    Responder
    • ¿Qué versión de Java estás usando según el comando «java -version«? Tal vez encuentres algo de información en el archivo de registro del servidor, en la ruta /opt/glassfish6/glassfish/domains/domain1/logs/server.log.

      Responder

Deja un comentario