JBoss en Ubuntu: ¿cómo instalar?

En este post les voy a mostrar cómo instalar JBoss en Ubuntu. JBoss es un servidor de aplicaciones J2EE bastante popular en el mundo de Java. Es el primer servidor de aplicaciones de código abierto que obtuvo el certificado J2EE 1.4, talvez de ahi sea su gran popularidad.

Ahora les dejo los sencillos pasos que debemos realizar para tener JBoss corriendo en nuestra cajita ubuntera [y empezar a desarrollar aplicaciones J2EE].

  • Primero que todo es necesario tener instalado Java en nuestra computadora.
  • Descargar JBoss. A la fecha, recomendaria descargar la version 4.2.2.GA con lo que obtendremos un zip llamado jboss-4.2.2.GA.zip.
  • Descomprimir el zip y renombrar la carpeta jboss-4.2.2.GA con el nuevo nombre jboss
  • Mover esta carpeta:

sudo mv jboss /opt/

  • … por lo que ahora deberiamos tener una carpeta /opt/jboss/
  • Crear el archivo/etc/init.d/jboss con el cual levantaremos o detendremos el servidor.

sudo vim /etc/init.d/jboss

  • … y pegar el siguiente contenido:
#! /bin/sh
#  /etc/init.d/jboss: Start and stop JBoss AS
ECHO=/bin/echo
TEST=/usr/bin/test
JBOSS_START_SCRIPT=/opt/jboss/bin/run.sh
JBOSS_STOP_SCRIPT=/opt/jboss/bin/shutdown.sh
$TEST -x $JBOSS_START_SCRIPT || exit 0
$TEST -x $JBOSS_STOP_SCRIPT || exit 0

start() {
    $ECHO -n "Starting JBoss"
    su - jboss -c "$JBOSS_START_SCRIPT > /dev/null 2> /dev/null &"
    $ECHO ".stop() {
    $ECHO -n "Stopping JBoss"
    su - jboss -c "$JBOSS_STOP_SCRIPT -S > /dev/null &"
    $ECHO "."
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 30
        start
        ;;
      *)$ECHO "Usage: jboss {start|stop|restart}"
exit 1
esac
exit 0
  • Permitir que este nuevo archivo sea ejecutable:

sudo chmod 755 /etc/init.d/jboss

  • Crear un usuario llamado jboss:

sudo adduser jboss

  • Actualizar los run levels:

sudo update-rc.d jboss defaults

Ya con esto deberiamos ser capaces de levantar nuestro JBoss por primera vez sin ningun problema:

sudo /etc/init.d/jboss start

Tardará cuestión de 1 o 2 minutos en levantar. Podemos hacer un escaneo de puertos sobre nuestra máquina con nmap para asegurarnos que JBoss está escuchando. Ademas, iniciará automaticamente cuando iniciemos nuestro sistema operativo.

Con esto ya tendrán funcionando JBoss en Ubuntu y estarán listos para empezar a desarrollar sus aplicaciones J2EE. Espero que sea de utilidad y espero sus comentarios, dudas, preguntas o críticas.

26 Comments

  1. al ejecutar el siguiente comando

    # sudo /etc/init.d/jboss start

    entrega lo siguiente …….

    /etc/init.d/jboss: 36: restart}”: not found
    su: opción inválida — S
    Modo de uso: su [opciones] [USUARIO]
    Opciones:
    -c, –command COMANDO pasa el COMANDO al intérprete invocado
    -h, –help muestra este mensaje de ayuda y termina
    -, -l, –login hace que el intérprete sea un intérprete de ingreso
    -m, -p,
    –preserve-environment no restablece las variables de entorno a su
    valor original, y conserva el mismo intérprete
    -s, –shell INTÉRPRETE usa INTÉRPRETE en vez del predeterminado en passwd
    /etc/init.d/jboss: 36: ”: not found

    la linea 36 apunta a la ejecución
    esac

    espero las sugerencias posible para poder levantar correctamente el servicio,

    pregunta : para que se crea un usuario jboss ?
    atte Desarrollador en Java

  2. El usuario jboss es opcional… usted puede utilizar el usuario que le parezca mas conveniente, sin embargo debera modificar un poco el script /etc/init.d/jboss, pues en la seccion de “start()” hace un llamado:

    su – jboss -c “$JBOSS_START_SCRIPT > /dev/null 2> /dev/null &”

    donde indica que se ejecute el comando como el usuario jboss; tambien sucede asi en la seccion de “stop()”.

    Puede modificarlo por cualquier otro usuario:

    su – miusuariopreferido -c “$JBOSS_START_SCRIPT > /dev/null 2> /dev/null &”

    Sobre el error que le aparece:

    /etc/init.d/jboss: 36: restart}”: not found <<< veo una llave “}” ???, deberia ser un parentesis, revise el script /etc/init.d/jboss y verifique que diga “restart)”, si es asi, verifique las lineas que comentaba anteriormente en las funciones de “start” y “stop”.

    Que distro usa? Puede escribirme a minibota@gmail.com cuando guste.

  3. Al ejecutar el # sudo /etc/init.d/jboss start
    sale siguiente error, segui todo lo indicado
    linea 11: -x not found

  4. erik
    hay una linea donde dice $test esa tiene que ir en el siguiente reglon, ahora a mi tb me tira un error que dice:
    sudo /etc/init.d/jboss start
    /etc/init.d/jboss: 66: restart}”: not found
    su: opción inválida — S
    /etc/init.d/jboss: 66: ”: not found
    Modo de uso: su [opciones] [USUARIO]

    Opciones:
    -c, –command COMANDO pasa el COMANDO al intérprete invocado
    -h, –help muestra este mensaje de ayuda y termina
    -, -l, –login hace que el intérprete sea un intérprete de ingreso
    -m, -p,
    –preserve-environment no restablece las variables de entorno a su
    valor original, y conserva el mismo intérprete
    -s, –shell INTÉRPRETE usa INTÉRPRETE en vez del predeterminado en passwd

    solicito ayuda
    gracias

  5. He puesto un archivo disponible al inicio de este post, es un link que dice “jboss”. Este es mi archivo de configuracion del jboss. No es un archivo de office aunque tenga la extension .doc, lo que pasa es que el wordpress no me dejaba subirlo sin extension asi que solo queda quitarle la extension y sustituirlo por que /etc/init.d/jboss que ustedes tienen.

    Tal parece que al seleccionar el texto de ese script en el blog y darle copiar y pegar luego, algunos caracteres se cambian, lo que hace un poco ilegible el archivo para el interprete bash.

    Por favor intentenlo y me cuentan si esto soluciono el problema que traian. Creo que es importante para todos.

    Saludos

  6. Gracias
    Todo funcionando correctamente, para hacerlo funcionar en otras direcciones ip hay que utilizar el comando ./run.sh -b 0.0.0.0 donde 0.0.0.0 corresponde a la ip por ejemplo de la red
    saludos
    Tom

  7. el momento de ejecutar el archivo jboss, se me presenta el siguiente mensaje

    “/bin/sh^M: intérprete incorrecto: No existe el fichero ó directorio”, y por eso no puedo hacer que mi servidor jboss se ejecute desde que se prende mi máquina.

    alguna idea que me pueda ayudar…..

  8. Alejandro,

    Tu archivo de configuración seguramente contiene el caracter “^M” al final de cada linea. Elimina este caracter y vuelve a intentarlo. Te recomiendo que lo edites con el Vim.

    Saludos.

  9. Hola he seguido las instrucciones tal y como explicas y todo me ha salido perfectamente sin ningun error, cuando escribo sudo /etc/init.d/jboss start no me dice nada si esta bien o mal dices q tarda uno o 2 minutos en levantar pero no me aparece nada inclusive ya reinicie el sistema y nada. Quiero saber como empiezo a trabajar con el jboss ?? ya que quiero hacer unas pruebas de workflows

  10. Me manda este error Firefox can’t establish a connection to the server at localhost:8080. ¿¿Sera necesario tener instalado el tomcat?? es que he leido otros manuales de la instalacion de jboss y dan a entender que trabaja con apache-tomcat.

    Tambien he intentado instalar el plugin de jboss IDE en Eclipse pero al momento de crear un proyecto me pide la localizacion del JBPM Runtime tu sabes algo de esto??

    gracias por tu ayuda

  11. Hola, felicitarte por tu blog me ha servido de mucha ayuda.
    Solo queria plantearte la posibilidad de poder arrancar el script de inicio con una IP, que no sea la de http://Localhost:8080.
    Osea, para que nos entendamos bien, cuando se arranca la maquina desde el estado shutdown y te carga en el inicio la configuracion en:
    # /etc/init.d/jboss/bin/run.sh
    Arranca de forma automatica pero en Localhost y me gustaria saber si ahi alguna opcion que arranque desde el inicio con la propia IP de la maquina.
    Gracias

  12. Daniel,

    Gracias por tu comentario; el saber que el artículo ha sido de utilidad para algunas personas es una gran noticia para mí.

    El script levanta JBoss en tu máquina local (localhost), sin embargo, es posible que accedas al servicio desde una máquina diferente, sustituyendo “locahost” por el IP que tenga actualmente el servidor donde corres JBoss. Por ejemplo, si este servidor tiene el IP 192.168.0.1, puedes acceder desde otra computadora mediante la dirección http://192.168.0.1:8080. Esto, siempre y cuando no tengas un firewall bloqueando las peticiones al puerto 8080.

    Si hay un nombre de dominio apuntando hacia ese servidor, también puedes acceder de esa forma, ejemplo: http://daniel.net:8080

    Saludos.

  13. Buenas, ya ha pasado un poco de tiempo… pero apenas hoy lo leo por la necesidad de instalr jboss.

    Me ha pasado lo mismo que a franz y revizando me percate que al descargar el jboss no se ha bajado el directorio bin, esto es normal?

    Me decargue el jboss-4.2.2.GA

    de este link: http://www.jboss.org/jbossas/downloads/

    Gracias y perdonen el tiempo

  14. Ya me descargue el .zip, el que me habia descargado en un principio era el .tar.gz y ese no trae la carpeta bin, supongo que es por que es src.

    De todos modos gracias por responder.

    Una pregunta mas, de donde me puedo bajar el plugin para eclipse del jboss?

    Saludos!

  15. Hola parece es que es un poquito tarde para preguntar por la fecha

    luego de editar el script con vi y eliminar las basuritas de windows,
    a la hora de registrar con
    sudo update-rc.d jboss defaults
    me aparece un warning
    /etc/init.d/jboss missing LSB style header
    creo yo que es la cabecera de linux standart base
    tienes alguna cabecera de ejemplo?

    y el otro problema es que cuando levanto el servidor con
    sudo /etc/init.d/jboss start
    me aparece
    starting JbossUnknown id:jboss
    eso esta bien?
    luego espero unos 5 minutos entro a http://192.168.1.66:8080/ que es la maquina virtual de ubuntu server hardy, tengo el router con nat a esa ip
    y nada empanada, estoy haciendo algo mal?

  16. He hecho todo lo que dice en este tutorial, que por cierto está bastante entendible, pero tengo problemas al iniciar el Jboss con la orden sudo /etc/init.d/jboss start. Tampoco pasa nada si abro el localhost/8080. No sé cuál pueda ser mi error. Espero que puedas contestarme lo más pronto posible. Gracias.

    • Hola Veronica,

      Cuando JBoss inicia no vemos nada en la terminal pues en el archivo /etc/init.d/jboss en la sección “start(){…}” hay una linea que dice:
      su - jboss -c "$JBOSS_START_SCRIPT > /dev/null 2> /dev/null &"
      O sea que toda la salida del comando ‘jboss’ se va a /dev/null.

      Así que aunque inicie correctamente no percibiremos nada, hasta que accedemos a http://127.0.0.1:8080/

      Si realmente no arranca, reemplazar temporalmente aquella línea con lo siguiente podría ayudar a hacer debug:
      su - jboss -c "$JBOSS_START_SCRIPT &"

      Ahora al arrancar JBoss es posible que ahi indique el problema que sucede.
      Inténtalo y cuéntame qué pasa.

      Saludos.
      Pavel Stephan

  17. Hola disculpen que moleste despues de tanto tiempo… queria saber si alguien tubo problemas con los puertos que utilizan las aplicaciones java EE… En mi caso tengo glassfish en ubuntu y usa los puertos 3700 3920 3820 y por alguna razon me no los clientes java no pueden comunicarse con el servidor de aplicaciones… Con netstats veo los puertos escuchando pero cuando ejecuto el cliente en alguna maquina conectada mediante un cable directamente me tira un error de iiop haciendo referencia a q hay un problema con los puertos.
    Lo mas triste de todo es que tengo el mismo glassfish en windows 7 y haciendo el deploy de mi aplicacion ahi los clientes me levantan y funcionan sin problemas… Si alguien puede tirar una idea siquiera le voy a estar muy agradecido.
    Sino voy a instalar JBoss y probare con este.
    Muchas gracias!

    • Hola Fernando.
      Lamento responderte tarde y con malas noticias. La verdad es que con Glassfish no tengo experiencia aún. Espero que alguien más pueda brindarte una luz, si es que aún tienes ese problema.
      Saludos.

      • problema solcuionado. no eran los puertos, el problema era la configuracion de hosts en ubuntu. Para que las aplicaciones web start que usan rmi funcionen bien hay q poner la ip real asociada al nombre de nuestra pc en el archivo hosts sino intenta conectarse a las ip local q viene por defecto. saludos!

  18. Hola compañero soy nuevo en esto de Java y Jboss. Tengo Ubuntu instalado y quisiera saber como se instala Jboss la version 5 usandolo al mismo tiempo con Eclipse. Ya he probado varias cosas y lo unico a que he llegado es que al momento de ejecutar el servidor Jboss en Eclipse me mande un mensaje que dice que el puerto 8080 otra aplicacion lo tiene ocupado. Lo raro es que ya he hecho un escaneo y ese puerto no sale ocupado. Necesito ayuda porque no puedo correr el servidor Jboss de ninguna manera.

    • Aunque en el escaneo (con nmap localhost, supongo?) aparente no estar ocupando el puerto 8080, es posible que si lo esté. Es más seguro verificarlo con netstat. De cualquier forma, te aconsejaria detener el JBoss a mano, desde la consola, antes de intentar arrancarlo dentro de Eclipse.

      sudo /etc/init.d/jboss stop

      Despues de eso intenta de nuevo en Eclipse, a ver si ayuda de algo.

  19. ya he comprobado el nmap localhost y sale el puerto 8080 libre, tambien he corrido el run.sh que trae el jboss y funciona puedo ver el jboss en el navegador. Ahora mi problema es la integracion con Eclipse, logicamente detengo el jboss y verifico si el puerto 8080 esta libre, ya comprobado todo en el eclipse agrego el servidor jboss pero al momento de ejecutar un archivo html para que se visualice en el servidor jboss me dice que esta ocupado el puerto 8080 por otra aplicacion, no se como hacer esta integracion. Seria de mucha ayuda si pruebas en tu maquina a ver que pasa, te lo pido porque no quiero usar windows porque ahi ya me funciono.

Leave a Reply

Your email address will not be published. Required fields are marked *