Jboss
Instalar Jboss 6.x como Servicio
Configuraciones comunes para los Sistemas Linux
- Instalar el openjdk, para ello loguearse como root y ejecutar:
root@ubuntu1204:~# apt-get install openjdk-6-jdk
Por defecto crea la carpeta jvm en usr/lib
- Crear la estructura de directorios utilizada por tekoporu, para ello ir a /opt y crear los directorios de manera tal que queden de la siguiente manera:
/opt/tekoporu/server/
- Copiar el directorio jboss-6.x en la ubicación creada anteriormente
Observación
- Tener en cuenta que el directorio jboss-6.x y todo su contenido debe ser propiedad del usuario jboss para ello se debe crear dicho usuario de la siguiente manera:
root@ubuntu1204:~# useradd -s /bin/bash -d /opt/tekoporu/server/jboss-6.0/ jboss
Y asignar como propietario del mismo al usuario jboss
root@ubuntu1204:~# chown -R jboss:jboss /opt/tekoporu/server/jboss-6.x
- Modificar el archivo run.conf que se encuentra en /opt/tekoporu/server/jboss-6.x/bin/run.conf a fin de agregar el lenguaje y el locale correcto, en la última línea agregar:
JAVA_OPTS="$JAVA_OPTS -Duser.language=es -Duser.region=PY"
- Crear una copia del archivo que se encuentra normalmente en el directorio /opt/tekoporu/server/jboss-6.x/bin/jboss_init_redhat.sh a la ubicación /etc/init.d/ y renombrarlo como jboss
root@ubuntu1204:~# cp /opt/tekoporu/server/jboss-6.x/bin/jboss_init_redhat.sh /etc/init.d
Estando en /etc/init.d renombrarlo:
root@ubuntu1204:/etc/init.d# mv jboss_init_redhat.sh jboss
- Editarlo y verificar los siguientes puntos(Para modificación del archivo jboss, se debe loguear como root):
- Que el JBOSS_HOST tenga seteada la IP correspondiente donde se ofrecerá el servicio Jboss, si se va a utilizar la aplicación dentro de una LAN entonces se recomienda colocar el host 0.0.0.0:
JBOSS_HOST= "-b 10.8.0.5"
- Que el JAVAPATH apunte a nuestro jdk instalado
JAVAPTH=${JAVAPTH:-"/usr/lib/jvm/java-6-openjdk-amd64/jre/bin"}
- Que el JBOSS_HOME apunte a nuestro server:
JBOSS_HOME=${JBOSS_HOME:-"/opt/tekoporu/server/jboss-6.x"
- Además darle los permisos de ejecución correspondientes, ejecutando:
chmod a+x jboss
Script para instalar el Servicio Jboss
<source lang="bash">
- !/bin/sh
- $Id: jboss_init_redhat.sh 81068 2008-11-14 15:14:35Z dimitris@jboss.org $
- JBoss Control Script
- To use this script run it as root - it will switch to the specified user
- Here is a little (and extremely primitive) startup/shutdown script
- for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
- it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
- All this can be changed in the script itself.
- Either modify this script for your requirements or just ensure that
- the following variables are set correctly before calling the script.
- define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/opt/tekoporu/server/jboss-6.0"}
- define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"jboss"}
- make sure java is in your path
JAVAPTH=${JAVAPTH:-"/usr/lib/jvm/java-6-openjdk-i386/jre/bin"}
- configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}
- if JBOSS_HOST specified, use -b to bind jboss services to that address
- JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b localhost"}
- define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
- define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
# ensure the file exists touch $JBOSS_CONSOLE if [ ! -z "$SUBIT" ]; then chown $JBOSS_USER $JBOSS_CONSOLE fi
fi
if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE" echo "WARNING: ignoring it and using /dev/null" JBOSS_CONSOLE="/dev/null"
fi
- define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH" JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
export PATH=$PATH:$JAVAPTH
fi
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME exit 1
fi
echo JBOSS_CMD_START = $JBOSS_CMD_START
case "$1" in start)
cd $JBOSS_HOME/bin if [ -z "$SUBIT" ]; then eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 & else $SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &" fi ;;
stop)
if [ -z "$SUBIT" ]; then $JBOSS_CMD_STOP else $SUBIT "$JBOSS_CMD_STOP" fi ;;
restart)
$0 stop $0 start ;;
- )
echo "usage: $0 (start|stop|restart|help)"
esac
</source>
Sistemas Linux Centos 5.x, 6.x
- Añadir el jboss como servicio, a través del:
chkconfig --add jboss
- Para Iniciar el jboss debe estar logueado como root:
service jboss start (en caso que aún no haya iniciado)
- Para probar y levantar la aplicación abrir un navegador e ingresar la siguiente línea:
http://10.8.0.5:8080
Como saber si el servicio Jboss está en la lista de servicios a iniciar con el sistema
El runlevel en que arranca el servidor debe ser el mismo que del servicio jboss. Para averiguar en qué runlevel se encuentra la máquina
Éste ejemplo podría ser el resultado
[root@localhost default]# runlevel N5
Este comando arrojará el número del nivel(para éste caso N5), el cuál deberá coincidir con el resultado del runlevel del servicio jboss cuyo estado si está levantado será activo como se muestra en la salida de abajo.
Para verificar el estado del servicio jboss en el runlevel que corresponde, ejecutar el siguiente comando:
[root@localhost ~]# chkconfig --list | grep jboss jboss 0:desactivado 1:desactivado 2:desactivado 3:activo 4:activo 5:activo 6:desactivado
Sistemas Linux Ubuntu 12.04
- Crear acceso directo al run level del script jboss
root@ubuntu1204:/etc/init.d# update-rc.d jboss defaults
- Crear un archivo ejecutable para setear como variable del sistema a JBOSS_HOME, la ubicación de dicho archivo debe ser /etc/profile.d/JBOSS_HOME.sh, y colocar las siguientes líneas:
export JBOSS_HOME="/opt/tekoporu/server/jboss-6.0" export PATH=$JBOSS_HOME/bin:$PATH
- Probar si funciona el script run.sh, loguearse como usuario jboss
Para ello ir a /opt/tekoporu/server/jboss-6.0/bin y ejecutar (Si se va a utilizar la aplicación dentro de una LAN se recomienda setear como 0.0.0.0)
jboss@ubuntu1204: sh run.sh -c default -b 10.8.0.5
Una vez iniciado todo proceder a terminar el proceso pulsando Ctrl + C
- Para Iniciar el jboss debe estar logueado como root
service jboss start (en caso que aún no haya iniciado)
Script para inicio del servicio Jboss
- Para probar y levantar la aplicación abrir un navegador e ingresar la siguiente línea:
http://10.8.0.5:8080
- Setear el JAVA_HOME como variable del sistema
Para ello se debe crear un archivo ejecutable en /etc/profile.d
root@ubuntu1204:/etc/profile.d# vim java.sh
Y colocar la ubicación de java, un ejemplo podría ser:
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 export JAVA_HOME
- Verificar que en el directorio bin todos los archivos .sh deben ser ejecutables, si no es asi, entonces ejecutar:
root@ubuntu1204: chmod +x *.sh
- Cambiar los permisos del directorio jboss-6.0
root@ubuntu1204: chmod 750 jboss-6.0/
- Para verificar el log
tail -f /opt/tekoporu/server/jboss-6.0/server/default/log/server.log
Sistemas Windows
- Iniciar el servicio del jboss-6.0 en la consola cmd de windows. Para lo cual se debe ingresar hasta el directorio bin del jboss-6.0 y ejecutar la siguiente linea de comando run.bat -c default -b 0.0.0.0
Ejemplo:
C:\opt\jboss-6.0\bin> run.bat -c default -b 0.0.0.0
- Crear el servicio Jboss para ello en la misma ubicación (C:\opt\jboss-6.0\bin>) ejecutar:
service.bat install
service.bat start
- Para probar y levantar la aplicación abrir un navegador en Windows e ingresar la siguiente linea:
http://10.8.0.5:8080
La IP debe ser la correspondiente donde se ofrecerá el servicio Jboss.
Observaciones importantes en Windows 2000
Copiar la carpeta OpenSCG en el disco C
Modificar el archivo run.conf.bat, agregando la dirección IP asignada por el OpenVPN de manera que levante el JBoss en dicha dirección. La linea quedaria de la siguiente manera:
C:\opt\jboss-6.0\bin\run.conf.bat>
Ejemplo:
set "JAVA_OPTS=-Xms128M -Xmx512M -XX:MaxPermSize=256M -Djboss.bind.address=10.8.0.5"
Dicho archivo se encuentra en:
C:\opt\jboss-6.0\bin
Agregar la variable JAVA_HOME como variable de Administración
Click derecho sobre Equipo => Propiedades => Avanzado => Variables de Entorno => Variables de Sistema y Allí agregar Nueva
Nombre de la Variable: JAVA_HOME Valor de la variable: C:\OpenSCG\openjdk-6.0.24\
Y como variable de entorno del Sistema
Nombre de la Variable: PATH Valor de la variable: C:\OpenSCG\openjdk-6.0.24\bin
Configuración del host para publicación de Web Services
Para establecer la dirección IP o el host para publicación de los web services, se debe editar el archivo "stack-agnostic-jboss-beans.xml"
$JBOSS_HOME/server/default/deployers/jbossws.deployer/META-INF/stack-agnostic-jboss-beans.xml
Buscar la propiedad webServiceHost y colocar jbossws.undefined.host. Y también colocar la propiedad modifySOAPAddress en false como se muestra a continuación:
Si 'WebServiceHost' está en 'jbossws.undefined.host', el JBossWS utiliza host requesters al reescribir el <soap:address>
<source lang="xml">
<property name="webServiceHost">jbossws.undefined.host</property>
<property name="modifySOAPAddress">true</property>
</source>