JBoss es un Servidor de Aplicaciones Java completo, de código abierto, desarrollado por Red Hat. Y sí, yo también pienso en Apache Tomcat en estos momentos, pero hay diferencias entre ellos explicadas por ejemplo aquí o aquí. Voy a copiar literalmente una respuesta de StackOverflow que explica la diferencia entre un Servlet Container como Tomcat y un Application Server como JBoss:
«A servlet-container supports only the servlet API (including JSP, JSTL).
An application server supports the whole JavaEE – EJB, JMS, CDI, JTA, the servlet API (including JSP, JSTL), etc.
It is possible to run most of the JavaEE technologies on a servlet-container, but you have to install a standalone implementation of the particular technology.» por Bozho
Ahora que quizá tenemos algo más claro qué es JBoss y por qué este post no habla sobre Tomcat, faltará ver qué diferencias hay entre la versión de la comunidad y la enterprise (más info aquí). Como es de esperar, la versión de la comunidad siempre irá por delante respecto a la empresarial en cuanto a novedades y funcionalidades, con lo cual no estará tan testeada ni será tan estable como debería ser la versión empresarial, más pensada para alojar aplicaciones críticas.
En esta entrada se instalará y pondrá en marcha la versión de la comunidad.
Instalación de JBoss AS7
En mi caso he hecho las pruebas en un Fedora 16 x86_64, pero estas instrucciones serán prácticamente idénticas en entornos CentOS o Red Hat.
Actualización: Si vas a hacer las pruebas en un CentOS7/RHEL7, no dejes de mirar los comentarios de este post, donde nos han compartido instrucciones que te pueden venir bien para esos entornos.
En primer lugar deberemos asegurarnos de contar con Java:
[user@myServer]$ sudo yum install java-1.7.0-openjdk
Entramos en la web de JBoss AS y descargamos y descomprimimos la última versión:
[user@myServer]$ wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz
[user@myServer]$ tar -zxvf jboss-as-7.1.1.Final.tar.gz
[user@myServer]$ sudo mv jboss-as-7.1.1.Final /opt/
El tarball de JBoss no requiere instalación. Es por eso que una vez descomprimido podemos mover todo el directorio a /opt para empezar a trabajar con él.
NOTA: Si has buscado información sobre la instalación de JBoss AS7, verás que en algunos artículos se usa /usr/local como directorio de instalación mientras que en otros se usa /opt. Aquí o aquí explican un poco la diferencia entre ambos directorios, pero básicamente en /usr/local pondremos software de terceros que hemos tenido que compilar e instalar. Como JBoss AS7 viene ya precompilado y listo para usar, en mi caso me he decidido por /opt.
A continuación crearemos un usuario de sistema (opción «–system» o «-r») que será el usuario con el que se ejecutará JBoss. A este usuario, le daremos como home la ruta donde hemos movido el directorio de JBoss.
[user@myServer]$ sudo useradd --system -d /opt/jboss-as-7.1.1.Final/ jboss
NOTA: A un usuario de sistema se le asignará un UID de entre el rango de UIDs de sistema (definido en /etc/login.defs) y que por defecto es inferior a 500. Además, la cuenta no tendrá caducidad (definida en el fichero /etc/shadow), al ser una cuenta de sistema.
Ahora que contamos con el usuario («jboss» en nuestro caso), deberemos cambiar el propietario de los ficheros de su home, para que tenga el usuario «jboss» acceso total a ellos:
[user@myServer]$ sudo chown -R jboss:jboss /opt/jboss-as-7.1.1.Final/
Finalmente, me ha parecido una buena idea lo que proponen en el blog «rm-rf.es«, que es símplemente crear un enlace simbólico en /opt llamado jboss que apunte al directorio jboss original, para referirnos durante el resto de la instalación a /opt/jboss en lugar de al directorio original que contiene también el número de la versión en su nombre. En mi caso no lo he hecho, pero es una buena idea.
Configuración de JBoss AS7
Por defecto JBoss únicamente aceptará gestión desde localhost. Ésto se puede cambiar en el fichero de configuración «/opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml«.
Para que JBoss corra como un servicio, deberemos crear el script de inicio y darle permisos.
[user@myServer]$ sudo cp /opt/jboss-as-7.1.1.Final/bin/init.d/jboss-as-standalone.sh /etc/init.d/jboss
[user@myServer]$ sudo chmod +x /etc/init.d/jboss
Posteriormente configuraremos los parámetros de entorno de JBoss.
[user@myServer]$ sudo mkdir /etc/jboss-as
[user@myServer]$ sudo vi /etc/jboss-as/jboss-as.conf
JBOSS_HOME=/opt/jboss-as-7.1.1.Final
JBOSS_CONSOLE_LOG=/var/log/jboss-console.log
JBOSS_USER=jboss
Hecho ésto, ya podremos iniciar JBoss y configurarlo para que se inicie durante el proceso de boot.
[user@myServer]$ sudo service jboss start
[user@myServer]$ sudo chkconfig jboss on
JBoss escucha peticiones HTTP por defecto del puerto 8080, aunque abre varios puertos de escucha, todos configurables, de nuevo, desde el fichero de configuración «standalone.xml«.
Lo primero que haremos, con JBoss corriendo, es crear el primer usuario de gestión de JBoss (opción «a», puedes dejar el «realm» por defecto):
[user@myServer]$ sudo cd /opt/jboss-as-7.1.1.Final/bin
[user@myServer]$ sudo ./add-user.sh
Una vez tengamos el usuario de gestión creado, podremos loguearnos a la consola de administración:
http://127.0.0.1:8080/console
o lo que es lo mismo,
http://127.0.0.1:9990
Fuentes:
http://opensourcearchitect.co/tutorials/installing-jboss-7-1-on-centos-6
https://docs.jboss.org/author/display/AS71/Getting+Started+Guide#GettingStartedGuide-Installation
Para el miercoles tendras un comentario con la guia de los pasos correctos a seguir para instalar JBoss, y agradeceria mucho que la cambiases ya que tu blog es una de las primeras paginas que sale en los buscadores, que lo que salga que este bien.
Un saludo
¡Te lo agradezco! Es probable que se me haya colado algún error o que me haya despistado con algún comando. Shit happens 🙂 Cualquier corrección o sugerencia para mejorar la guía será siempre más que bienvenida.
¡Gracias de antemano por tu aportación!
PD: He seguido el tutorial en un docker container CentOS:6.6 y no he tenido problemas. ¿Puedes confirmar en qué distribución estás haciendo las pruebas y qué problemas estás encontrando?
Como prometi, es miercoles y aqui estoy.
Lo estoy instalando en un Centos 7.
He estado siguiendo una guia que hay, supongo que sabras que pagina es,no he explicado los comandos, tan solo los he copiado por falta de tiempo, en la propia pagina los encontratras.
Siguiendo todos estos pasos al pie de la letra funciona.
wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
yum install java-1.7.0-openjdk
mv jboss-as-7.1.1.Final.zip /opt
cd /opt/ && unzip jboss-as-7.1.1.Final.zip
ln -s /opt/jboss-as-7.1.1.Final /opt/jboss
adduser jboss
passwd jboss
su – jboss
nano ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
export JBOSS_HOME=/opt/jboss
export PATH=$PATH:$JBOSS_HOME/bin
bash
su root
chown -R jboss.jboss /opt/jboss-as-7.1.1.Final
su – jboss
$JBOSS_HOME/bin/standalone.sh
Nano /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml
/opt/jboss-as-7.1.1.Final/bin/add-user.sh
A ManagementRealm nombreusuario contraseñausuario
cp -p /opt/jboss/bin/init.d/jboss-as-standalone.sh /etc/init.d/jboss
chmod 755 /etc/init.d/jboss
mkdir /etc/jboss-as/
cp -p /opt/jboss-as-7.1.1.Final/bin/init.d/jboss-as.conf /etc/jboss-as/
nano /etc/jboss-as/jboss-as.conf
JBOSS_USER=jboss
JBOSS_HOME=/opt/jboss
chkconfig –add jboss
chkconfig jboss on
/etc/init.d/jboss start
Un Saludo
¡Ah! CentOS7. Eso explicaría que algún comando fuera ligeramente diferente. Como nota, creo que es buena idea crear el usuario jboss como usuario de sistema (opción «–system») en lugar de como un usuario normal, de cara a prevenir problemas de seguridad.
¡Gracias de nuevo por compartir la solución! He puesto una nota en el post para los que se vean en tu misma situación.
Salud
Fue fallo mio no ver que era en 6.6 y de ahi a centos 7, lo estoy instalando en Centos 7.3 para ser mas especificos, hay bastantes cambios. Siento las malas formas pero ese dia estaba bastante quemado siguiendo tutoriales que no servian.
Revisando un poco lo que he puesto,no se ha copiado lo que hay que modificar en este paso, Nano /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml
Pongo el enlace del lugar de donde lo he seguido, ya que ahi esta mucho mejor explicado, tan solo me limite a copiar los pasos.
http://rm-rf.es/como-instalar-jboss/
De todas formas, jboss ya es antiguo por lo que ya he instalado wildfly que es su actualizacion, dicho todo este he estado mirando tu blog y esta bastante bien, se lo recomendare a la gente, una vez mas disculpas por ese dia.
Un saludo
¡Sin problemas!
¡Y de nuevo, gracias por compartir la solución! Ahora el post queda mucho más completo 😀