===== 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 [[https://glassfish.java.net/download.html|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**.
- Administración: 4848.
- HTTPS 8181.
- HTTP 8080.