
WildFly: Conocido antes como JBoss As, o solo JBoss, es un servidor Open Source de aplicaciones Java EE. Es útil para crear, implementar y hospedar aplicaciones y servicios Java. Además, maneja servlets, JSP, EJB y JMS. Compatible con cualquier sistema operativo en el que se encuentre disponible la máquina virtual Java.
WildFly es una de las soluciones más populares para ejecutar aplicaciones empresariales basadas en Java. En este artículo exploraremos qué es WildFly, sus principales características, cómo instalarlo en Debian 12 desde repositorios, configurarlo y sus ventajas más destacadas.
¿Qué es WildFly?
WildFly es un servidor de aplicaciones Java EE (actualmente Jakarta EE) de código abierto desarrollado inicialmente por JBoss. Su propósito principal es proporcionar un entorno confiable, eficiente y escalable para ejecutar aplicaciones empresariales. WildFly se destaca por su arquitectura modular y su capacidad para adaptarse a diferentes necesidades, desde proyectos pequeños hasta implementaciones a gran escala.
¿Para qué sirve WildFly?
WildFly es ideal para ejecutar aplicaciones empresariales en Java, como sistemas de gestión, plataformas de comercio electrónico y servicios web RESTful o SOAP. Su flexibilidad lo hace útil tanto en entornos locales como en la nube.
Ventajas de WildFly
- Velocidad y Eficiencia: Su arquitectura modular optimiza el consumo de recursos.
- Fácil de Configurar: La consola web y las herramientas CLI simplifican la gestión.
- Escalabilidad: Ideal para aplicaciones que necesitan crecer con la demanda.
- Soporte de Comunidad: Al ser open source, cuenta con una gran comunidad activa y recursos disponibles.
- Compatibilidad con Herramientas Modernas: Integra fácilmente con Docker, Kubernetes y otros entornos de contenedores.
Características de WildFly
- Arquitectura Modular: WildFly utiliza JBoss Modules, lo que permite cargar solo los módulos necesarios, reduciendo el uso de recursos.
- Cumplimiento con Jakarta EE: Compatible con las especificaciones Jakarta EE, lo que asegura portabilidad y estandarización.
- Rendimiento Optimizado: Integra tecnologías como Undertow, un servidor web de alto rendimiento.
- Gestión y Configuración Centralizada: Ofrece una consola de administración intuitiva y herramientas CLI para configuraciones avanzadas.
- Escalabilidad y Clustering: Soporta entornos distribuidos, facilitando la escalabilidad horizontal.
- Soporte para Contenedores: Funciona perfectamente con Docker y Kubernetes para despliegues en la nube.
Instalación de WildFly en Debian 12
Sigue estos pasos para instalar WildFly en Debian 12:
Si wget
no está presente en su sistema, puede instalarse ejecutando los siguientes comandos
$ sudo apt install curl wget
Necesita Java 17
:
WildFly requiere Java para funcionar, ya que es un servidor de aplicaciones Java.
- Instalar Java default-jdk:
$ sudo apt install default-jdk
- Verificar la instalación de Java:
Comprueba que Java está correctamente instalado.
$ java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)
Las últimas versiones del software WildFly están disponibles en: https://www.wildfly.org/downloads/
Estos 2 comandos te proporciona, te permiten obtener la última versión de WildFly.
$ WILDFLY_RELEASE=$(curl -s https://api.github.com/repos/wildfly/wildfly/releases/latest|grep tag_name|cut -d '"' -f 4)
$ wget https://github.com/wildfly/wildfly/releases/download/${WILDFLY_RELEASE}/wildfly-${WILDFLY_RELEASE}.tar.gz
$ ls
Descargas Documentos Escritorio Imágenes Música Plantillas Público Vídeos wildfly-34.0.1.Final.tar.gz
Después de la descarga, extraiga el archivo comprimido.
$ tar xvf wildfly-${WILDFLY_RELEASE}.tar.gz
$ ls
Descargas Documentos Escritorio Imágenes Música Plantillas Público Vídeos wildfly-34.0.1.Final wildfly-34.0.1.Final.tar.gz
Deberíamos mover la carpeta creada de WildFly al directorio /opt
.
$ sudo mv wildfly-${WILDFLY_RELEASE} /opt/wildfly
Crear un usuario para WildFly:
Es una buena práctica crear un usuario específico del sistema para WildFly para mejorar la seguridad.
$ sudo groupadd -r wildfly
$ sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
$ sudo chown -R wildfly:wildfly /opt/wildfly
Configurar WildFly
- Configurar el servicio systemd para WildFly:
Configura WildFly para que se ejecute como un servicio.
$ sudo nano /etc/systemd/system/wildfly.service
Añade el siguiente contenido al archivo: /etc/systemd/system/wildfly.service
[Unit]
Description=WildFly Application Server
After=syslog.target network.target
[Service]
Type=simple
User=wildfly
Group=wildfly
ExecStart=/opt/wildfly/bin/standalone.sh -b=0.0.0.0
Restart=on-failure
[Install]
WantedBy=multi-user.target
- Habilitar y arrancar WildFly:
// Recargue los servicios de systemd antes de iniciar wildfly:
$ sudo systemctl daemon-reload
// Inicie y habilite el servicio WildFly:
$ sudo systemctl start wildfly
$ sudo systemctl enable wildfly
Verificar el estado del servicio:
$ sudo systemctl status wildfly
Cambiar el puerto predeterminado de WildFly
Para cambiar el puerto predeterminado de WildFly (puerto 8080 para HTTP o 9990 para la consola de administración), debes modificar su archivo de configuración correspondiente.
Cambiar el puerto HTTP (8080) con modo standalone.
- Editar el archivo de configuración:
- Para el modo standalone:
$ sudo nano /opt/wildfly/standalone/configuration/standalone.xml
- Para el modo domain:
$ sudo nano /opt/wildfly/domain/configuration/domain.xml
Buscar la configuración del puerto HTTP: En el archivo standalone.xml
(o domain.xml
), localiza el siguiente bloque dentro de <subsystem xmlns="urn:jboss:domain:undertow:...">
:
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
Cambiar el valor del puerto: Modifica el valor del atributo port
con el número del nuevo puerto:
<socket-binding name="http" port="${jboss.http.port:9090}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
- Guardar y salir: Guarda el archivo y cierra el editor.
- Reiniciar WildFly: Para aplicar los cambios, reinicia el servicio:
$ sudo systemctl restart wildfly
Cambiar el puerto de la consola de administración (9990) con modo standalone.
- Editar el archivo de configuración: Igual que en el caso del puerto HTTP, abre el archivo correspondiente:
- Para el modo standalone:
$ sudo nano /opt/wildfly/standalone/configuration/standalone.xml
- Para el modo domain:
$ sudo nano /opt/wildfly/domain/configuration/domain.xml
Buscar la configuración del puerto de administración: En el archivo, localiza este bloque:
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
Cambiar el valor del puerto: Modifica el valor del atributo port
:
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9999}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
- Guardar y salir: Guarda los cambios y cierra el editor.
- Reiniciar WildFly: Para que los nuevos ajustes entren en efecto:
$ sudo systemctl restart wildfly
Acceder a WildFly
- Acceder al panel de administración de WildFly:
Abre tu navegador y visitahttp://tu-direccion-ip:9090
. Aquí deberías ver la página de bienvenida de WildFly.

- Configurar el acceso administrativo:
Configura un usuario administrativo para gestionar WildFly a través de la consola de administración.
$ sudo /opt/wildfly/bin/add-user.sh
Se le solicitará que elija el tipo de usuario que desea agregar. Dado que este es el primer usuario, queremos que sea administrador. Elija
a.
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a
Ingrese el nombre del usuario a crear.
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : javier02
Proporcione una contraseña segura para este usuario. Consulte la guía proporcionada sobre la política de contraseñas.
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
The password should be different from the username
The password should not be one of the following restricted values {root, admin, administrator}
The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : <Enter Password>
Re-enter Password : <Confirm Password>
Presione Enter y acepte las indicaciones subsiguientes para finalizar la creación del usuario.
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'javier02' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'javier02' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
Added user 'javier02' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
Added user 'javier02' with groups to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
Added user 'javier02' with groups to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'
Tenga en cuenta que:
- La información del usuario se guarda en: /opt/wildfly/domain/configuration/mgmt-users.properties
- La información del grupo se guarda en: /opt/wildfly/standalone/configuration/mgmt-groups.properties
Comprobar la consola de administración (9990): Accede con http://localhost:9990
y mete tu usuario y contraseña:

Resumen y Conclusión
WildFly es una herramienta robusta y versátil que cumple con los requisitos de las aplicaciones empresariales modernas. Su modularidad, soporte para Jakarta EE y facilidad de uso lo convierten en una opción destacada tanto para desarrolladores como para administradores de sistemas. Ya sea que lo utilices en un entorno local o en la nube, WildFly está diseñado para ofrecer un rendimiento confiable y escalable.
Explora WildFly y descubre cómo puede mejorar tu infraestructura de aplicaciones Java. ¿Listo para empezar?