Instalar Java y Apache TomEE en AlmaLinux
Aprende a instalar Java JDK y Apache TomEE en AlmaLinux para desplegar aplicaciones empresariales Java EE/Jakarta EE. Esta guía cubre la instalación, configuración, despliegue de aplicaciones y optimización para producción.
Apache TomEE es un servidor de aplicaciones Java EE certificado, ligero y fácil de configurar. Ideal para ejecutar aplicaciones empresariales en tu servidor VPS.
Contenido
1. ¿Qué es Apache TomEE?
Apache TomEE (pronunciado «Tommy») es Apache Tomcat mejorado con soporte completo para Java EE (ahora Jakarta EE). Es más ligero que servidores como WildFly o WebSphere, pero ofrece todas las funcionalidades empresariales.
Comparación TomEE vs Tomcat
| Característica | Tomcat | TomEE |
|---|---|---|
| Servlets/JSP | Sí | Sí |
| EJB | No | Sí |
| JPA | Manual | Integrado (OpenJPA) |
| CDI | No | Sí (OpenWebBeans) |
| JMS | No | Sí (ActiveMQ) |
| JAX-RS/JAX-WS | Manual | Integrado (CXF) |
| Certificación Jakarta EE | No | Sí (TomEE+) |
Versiones de TomEE
- TomEE WebProfile: Perfil web ligero, ideal para la mayoría de aplicaciones
- TomEE MicroProfile: Optimizado para microservicios
- TomEE Plus: Perfil completo con JAX-WS y JMS
- TomEE Plume: Todo lo de Plus + extras como Mojarra (JSF)
2. Instalar Java JDK
TomEE requiere Java 8 o superior (Java 11 o 17 recomendado):
Instalar OpenJDK desde repositorios
# Ver versiones de Java disponibles
dnf search java-*-openjdk-devel
# Instalar OpenJDK 17 (LTS recomendado)
sudo dnf install java-17-openjdk-devel -y
# O Java 11 (LTS)
# sudo dnf install java-11-openjdk-devel -y
# Verificar instalación
java -version
javac -version
Configurar JAVA_HOME
# Encontrar ruta de Java
alternatives --list | grep java
# Editar perfil del sistema
sudo nano /etc/profile.d/java.sh
# Contenido del archivo:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$PATH:$JAVA_HOME/bin
# Aplicar cambios
source /etc/profile.d/java.sh
# Verificar
echo $JAVA_HOME
Instalar múltiples versiones de Java
# Instalar Java 11 también
sudo dnf install java-11-openjdk-devel -y
# Cambiar versión por defecto
sudo alternatives --config java
# Seleccionar el número de la versión deseada
3. Descargar e Instalar TomEE
Crear usuario para TomEE
# Crear usuario de sistema
sudo useradd -r -m -U -d /opt/tomee -s /bin/false tomee
Descargar TomEE
# Ir al directorio temporal
cd /tmp
# Descargar TomEE Plus (última versión 9.x para Jakarta EE 9.1)
wget https://dlcdn.apache.org/tomee/tomee-9.1.2/apache-tomee-9.1.2-plus.tar.gz
# O TomEE 8.x (para Java EE 8)
# wget https://dlcdn.apache.org/tomee/tomee-8.0.16/apache-tomee-8.0.16-plus.tar.gz
# Verificar descarga (opcional)
sha512sum apache-tomee-*.tar.gz
Instalar TomEE
# Extraer a /opt
sudo tar -xzf apache-tomee-*.tar.gz -C /opt
# Renombrar directorio
sudo mv /opt/apache-tomee-plus-9.1.2 /opt/tomee
# Asignar permisos
sudo chown -R tomee:tomee /opt/tomee
Configurar variables de entorno
# Crear archivo de entorno
sudo nano /etc/profile.d/tomee.sh
# Contenido:
export CATALINA_HOME=/opt/tomee
export CATALINA_BASE=/opt/tomee
export CATALINA_TMPDIR=/opt/tomee/temp
export PATH=$PATH:$CATALINA_HOME/bin
# Aplicar
source /etc/profile.d/tomee.sh
4. Configuración de TomEE
Configurar usuarios de administración
# Editar tomcat-users.xml
sudo nano /opt/tomee/conf/tomcat-users.xml
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="TuContraseñaSegura123!" roles="manager-gui,manager-script,admin-gui,admin-script"/>
</tomcat-users>
Permitir acceso remoto al Manager
# Editar context.xml del manager
sudo nano /opt/tomee/webapps/manager/META-INF/context.xml
<!-- Comentar o eliminar la restricción de IP -->
<Context antiResourceLocking="false" privileged="true" >
<!-- Comentar esta línea para permitir acceso remoto:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
Configurar puerto (opcional)
# Editar server.xml
sudo nano /opt/tomee/conf/server.xml
# Cambiar puerto 8080 a otro si es necesario:
# <Connector port="8080" ... />
Crear servicio systemd
# Crear archivo de servicio
sudo nano /etc/systemd/system/tomee.service
[Unit]
Description=Apache TomEE
After=network.target
[Service]
Type=forking
User=tomee
Group=tomee
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
Environment="CATALINA_HOME=/opt/tomee"
Environment="CATALINA_BASE=/opt/tomee"
Environment="CATALINA_PID=/opt/tomee/temp/tomee.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server"
ExecStart=/opt/tomee/bin/startup.sh
ExecStop=/opt/tomee/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
# Recargar systemd
sudo systemctl daemon-reload
# Iniciar TomEE
sudo systemctl start tomee
# Habilitar al arranque
sudo systemctl enable tomee
# Verificar estado
sudo systemctl status tomee
Configurar firewall
# Abrir puerto 8080
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
# Acceder al servidor
# http://TU-IP:8080
5. Desplegar Aplicaciones
Despliegue manual (WAR)
# Copiar archivo WAR al directorio webapps
sudo cp mi-aplicacion.war /opt/tomee/webapps/
# Asignar permisos
sudo chown tomee:tomee /opt/tomee/webapps/mi-aplicacion.war
# TomEE despliega automáticamente
# Acceder: http://TU-IP:8080/mi-aplicacion/
Despliegue via Manager Web
- Acceder a http://TU-IP:8080/manager/html
- Iniciar sesión con credenciales configuradas
- En «Deploy», seleccionar archivo WAR
- Clic en «Deploy»
Despliegue con Maven
<!-- En pom.xml -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://servidor:8080/manager/text</url>
<server>TomEEServer</server>
<path>/mi-aplicacion</path>
</configuration>
</plugin>
# Desplegar
mvn tomcat7:deploy
# Redesplegar
mvn tomcat7:redeploy
6. Configuración para Producción
Optimizar memoria JVM
# Editar setenv.sh
sudo nano /opt/tomee/bin/setenv.sh
#!/bin/bash
# Configuración de memoria (ajustar según RAM disponible)
export CATALINA_OPTS="$CATALINA_OPTS -Xms1024m -Xmx2048m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxGCPauseMillis=200"
# Configuración de producción
export CATALINA_OPTS="$CATALINA_OPTS -server"
export CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true"
# Encoding
export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"
# Dar permisos
sudo chmod +x /opt/tomee/bin/setenv.sh
sudo chown tomee:tomee /opt/tomee/bin/setenv.sh
Configurar proxy reverso con Nginx
# /etc/nginx/conf.d/tomee.conf
server {
listen 80;
server_name tudominio.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Logs y monitoreo
# Ver logs en tiempo real
tail -f /opt/tomee/logs/catalina.out
# Logs de acceso
tail -f /opt/tomee/logs/localhost_access_log.*.txt
# Monitorear memoria
ps aux | grep tomee
jstat -gc $(pgrep -f tomee)
Preguntas Frecuentes
¿Cuál es la diferencia entre TomEE y Tomcat?
Tomcat es solo un contenedor de Servlets/JSP. TomEE es Tomcat + tecnologías Java EE: EJB, CDI, JPA, JAX-RS, JMS, etc. Si tu aplicación usa solo Servlets, Tomcat es suficiente. Si usas anotaciones como @EJB, @Inject, @Entity, necesitas TomEE o un servidor Java EE completo.
¿Qué versión de Java necesito para TomEE?
TomEE 9.x requiere Java 11+ (recomendado Java 17 LTS). TomEE 8.x funciona con Java 8+. Para nuevos proyectos, usa TomEE 9.x con Java 17 para aprovechar Jakarta EE 9.1 y las últimas mejoras de rendimiento de la JVM.
¿Cómo configurar memoria para TomEE?
Crea el archivo /opt/tomee/bin/setenv.sh con CATALINA_OPTS que incluya -Xms (memoria inicial) y -Xmx (memoria máxima). Ejemplo: -Xms1024m -Xmx2048m. Para producción, asigna al menos 25% de la RAM del servidor y usa el garbage collector G1GC con -XX:+UseG1GC.
¿Necesitas un VPS para tus Aplicaciones Java?
Nuestros servidores VPS son ideales para ejecutar TomEE y aplicaciones empresariales Java.
Ver Planes VPS¿Necesitas un VPS con AlmaLinux?
Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.
Ver Planes VPS
![Errores comunes en cPanel y cómo solucionarlos [Guía 2025]](https://www.hosting.com.pe/imagenes/Errores-comunes-en-cPanel-y-como-solucionarlos.webp)

![Cómo usar el Administrador de Archivos de cPanel para gestionar tu web [2025]](https://www.hosting.com.pe/imagenes/administrador-archivos-con-cpanel.webp)






