Instalación de JBoss

Ramiro Lago (Octubre 2006)

Introducción

JBoss es un contenedor de Servlets/JSP y EJBs. Puede ser usado:

En nuestro caso, optamos por la segunda opción: lo vamos a usar paralelamente a Tomcat 5.5.



Descarga e instalación básica

Para la decarga: http://labs.jboss.com/portal/jbossas/download. La versión que manejamos (4.0.X) requiere JDK 1.4 o 1.5, aunque recomienda este último para optar a todos los servicios.

Pasos a dar:

La instalación nos ofrece tres tipos de servidores en JBOSS_HOME/server:

Cada servidor tiene su propio directorio, con una estructura de subdirectorios semajante. Así, hay un subdirectorio conf que contiene :

La ejecución del servidor se realiza por medio de run.bat desde la línea de ordenes (run.bat está en el bin de JBoss). El servidor queda activo mientras no pulse Ctrl-C, que implica un shutdown. Si ejecuta run.bat puede observar algo como esto:


	C:\Archivos de programa\jboss-4.0.5.GA\bin>run
	===============================================================================

	  JBoss Bootstrap Environment

	  JBOSS_HOME: C:\Archivos de programa\jboss-4.0.5.GA\bin\\..

	  JAVA: C:\Sun\AppServer\jdk\bin\java

	  JAVA_OPTS:  -Dprogram.name=run.bat -server -Xms128m -Xmx512m -Dsun.rmi.dgc.cli
		ent.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

	  CLASSPATH: C:\Sun\AppServer\jdk\lib\tools.jar;C:\Archivos de programa\jboss-4.
		0.5.GA\bin\\run.jar

	===============================================================================

	19:25:12,562 INFO  [Server] Starting JBoss (MX MicroKernel)...
	19:25:12,562 INFO  [Server] Release ID: JBoss [Zion] 4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)
	19:25:12,562 INFO  [Server] Home Dir: C:\Archivos de programa\jboss-4.0.5.GA
	19:25:12,562 INFO  [Server] Home URL: file:/C:/Archivos de programa/jboss-4.0.5.GA/
	...
	19:25:36,546 INFO  [testQueue] Bound to JNDI name: queue/testQueue
	19:25:36,609 INFO  [UILServerILService] JBossMQ UIL service available at : /0.0.0.0:8093
	19:25:36,671 INFO  [DLQ] Bound to JNDI name: queue/DLQ
	19:25:36,812 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jb
		oss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
	19:25:36,921 INFO  [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/
	19:25:38,000 INFO  [Http11BaseProtocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8090
	19:25:38,125 INFO  [ChannelSocket] JK: ajp13 listening on /0.0.0.0:8019
	19:25:38,156 INFO  [JkMain] Jk running ID=0 time=0/94  config=null
	19:25:38,156 INFO  [Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] 
		Started in 25s:485ms
	_
	

El CLASSPATH que puede ver en la ejecución de JBoss (tools.jar y run.jar) se deriva de haber definido correctamente el JAVA_HOME (JDK).

Para hacer shutdown tan sólo tiene que hacer Ctrl-C.

Además cada cliente debe tener en el CLASSPATH la librería jbossall-client.jar del directorio JBOSS_HOME/client.

Si no hay problemas puede hacer http://localhost:8090 y ver la página principal de JBoss. La razón de usar el puerto 8090 para HTTP se explica en el siguiente capítulo. La página que puede verse en nuestro ejemplo



Evitar conflictos con Tomcat

Si quieres que JBoss conviva con Tomcat se deben evitar conflictos por el uso de los mismos puertos, por ejemplo el puerto típico de HTTP: 8080. Si hay conflictos debido a puertos, cuando ejecutemos run.bat se obtiene en alguna de las líneas la expresión:


	Address already in use: JVM bind
	

Para evitar conflictos:



Evitar problemas con el cliente

En el cliente hay que usar JNDI, por ello no debe sorprender que sea necesario conseguir un contexto. Además usamos el puerto 1099 para conectarnos al servidor EJB:


    	Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
        props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
        Context ctx = new InitialContext(props);
	

El archivo donde se especifica el puerto JNP es JBOSS_HOME/server/tipo_de_servidor/deploy/naming.sar\META-INF\jboss-service.xml (hablamos de la versión de este ejemplo, JBoss 4.x.y). Si llama a otro puerto debe cambiarlo en el archivo.

Además para que el cliente reconozca el api EJB (javax.ejb.EJBObject, etc) necesitará su jar correspondiente: ejb-2_1-api.jar.

Este API contiene el paquete paquete javax.ejb. Está disponible en el J2EE, pero se puede descargar separadamente desde http://java.sun.com/products/ejb/docs.html, en nuestro caso hemos tomado la versión 2.1. Lo más cómodo es poner el archivo jar al alcance de CLASSPATH.

También tiene disponible una especificación 3.0 (en función de la instalación de JBoss podrá utilizar esta versión).



Volver al índice