Instalar GlassFish 4.1 en sistemas GNU/Linux con Systemd

Instalación básica de GlassFish en sistemas GNU/Linux con Systemd. Creación del servicio Systemd para GlassFish con usuario sin privilegios, establecer la password del usuario administrador (recomendable) y configuración del acceso remoto (optativo).

GlassFish: https://glassfish.java.net

Dependencia: Java JDK (Versiones compatibles.)

GlassFish guía de administración: https://glassfish.java.net/docs/4.0/administration-guide.pdf

NOTA: La versión 4.1.1 tiene un Bug y no es posible utilizar la consola de administración para crear JDBC Resource o “Connection Pool”: https://java.net/jira/browse/GLASSFISH-21353

Creación del usuario (glassfish) sin privilegios.

adduser --comment 'Glassfish User' --home-dir /home/glassfish glassfish
su - glassfish

Como usuario glassfish, descargar la aplicación y descomprimir el paquete.

wget http://download.java.net/glassfish/4.1/release/glassfish-4.1.zip
unzip glassfish-4.1.zip
rm -f glassfish-4.1.zip

Crear el servicio Systemd /etc/systemd/system/glassfish.service para GlassFish arranque al inicio del sistema operativo.

[Unit]
Description = GlassFish Server v4.1
After = syslog.target network.target
 
[Service]
User=glassfish
ExecStart = /usr/bin/java -jar /home/glassfish/glassfish4/glassfish/lib/client/appserver-cli.jar start-domain
ExecStop = /usr/bin/java -jar /home/glassfish/glassfish4/glassfish/lib/client/appserver-cli.jar stop-domain
ExecReload = /usr/bin/java -jar /home/glassfish/glassfish4/glassfish/lib/client/appserver-cli.jar restart-domain
Type = forking
 
[Install]
WantedBy = multi-user.target

Configuración del servicio glassfish al inicio del sistema.

systemctl enable glassfish.service
systemctl start glassfish.service

Establecer / Reiniciar la contraseña del usuario administrador. Si se va a generar una primera clave, se debe dejar “Enter the admin password” en blanco.

/home/glassfish/glassfish4/bin/asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password>
Enter the new admin password> MI_PASSWORD
Enter the new admin password again> MI_PASSWORD
Command change-admin-password execute
exit

Configurar el acceso remoto (HTTPS) al panel de administración (optativo).

/home/glassfish/glassfish4/bin/asadmin enable-secure-admin
Enter admin password for user "admin"> MI_PASSWORD
You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
 
And just restart the domain and you are all set!
/home/glassfish/glassfish4/bin/asadmin restart-domain domain1
Successfully restarted the domain
Command restart-domain executed successfully.

# Otra posibilidad.
# systemctl restart glassfish

Visualizar logs de GlassFish en sistemas systemd.

journalctl -f -u glassfish.service

Típico error al querer arrancar glassfish cuando ya hay una instancia arrancada. Otra causa puede ser que no se haya configurado el dominio / hostname en el archivo “/etc/hosts”.

dominio.com java[764]: There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.
dominio.com java[764]: Command start-domain failed.

Puertos de GlassFish.

  1. Administración: 4848.
  2. HTTPS 8181.
  3. HTTP 8080.