EJB 3.0 y pruebas unitarias con Maven, JUnit 4 y Embedded JBoss sobre Java 6

0
13948

EJB 3.0 y pruebas unitarias con Maven, JUnit 4 y Embedded JBoss sobre Java 6

Introducción

Este tutorial es un complemento a otro tutorial (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ejb3JUnitWithJBoss) publicado anteriormente, y en el cual se documenta de forma más extensa los conceptos expuestos aquí.

El problema es que el anterior tutorial fallaría si lo intentaramos ejecutar bajo la versión 6 de la máquina virtual de Java (Java 6), en este tutorial se aporta el conocimiento necesario para solventar este problema.

Además, como diferencia en vez de usar la versión JBoss Embedded Beta 2, en este tutorial usaremos la JBoss Embedded Beta 3 (Kernel de JBoss 5).

Emdebbed JBoss (Beta 3)

Emdebbed JBoss es un versión limitada de el servidor de aplicaciones JBoss, pensada para ser embebida en aplicaciones de escritorio, tests, Tomcat, etc..

El peso que tiene esta versión es muy inferior al que tiene la versión no embedida del servidor de aplicaciones JBoss y entre otras cosas es ideal para
ejecutar nuestros tests de forma más eficiente.

Es decir, esta versión está pensada para ser capaz de ejecutar el Kernel de JBoss 5 y los servicios JEMS sin usar el classloader de la versión no embedida de JBoss.

Ejemplo

A continuación vamos a ver un ejemplo completo en el cual crearemos un EJB sin estado que expone funcionalidad
que puede ser invocada de forma tanto local como remota.
Posteriormente creamos un test JUnit que despliega el EJB en el microcontenedor JBoss Emdebbed 3 e invoca el método que expone.

A continuación vamos a ver un completo ejemplo en el cual:

  1. Definiremos una interfaz que exponga la funcionalidad local del EJB.
  2. Definiremos una interfaz que exponga la funcionalidad remota del EJB.
  3. Crearemos un EJB sin estado que expone el servicio local y remoto definido anteriormente.
  4. Creamos un par de tests JUnit que despliege el EJB en el microcontenedor JBoss Emdebbed 3 e invoque el método local y remoto.
  5. Veremos que modificaciones tenemos que hacer en el archivo de configuración de Maven para ejecutar todo de manera automática.

El código fuente de este tutorial puede ser descargado desde aquí.

Importante:

Hay que copiar los archivos de configuración de JBoss Embedded (%JBOSS_EMDEBBED_DIR%/bootstrap) al directorio src/test/resources de nuestro proyecto Maven, para que esta configuración esté disponible (via classpath) para el servidor.

Si observa la imagen, verá que son los archivos y directorios resaltados por el cuadrado rojo.

Interfaz EJB Local:

Interfaz EJB Remota:

EJB de ejemplo:

EJB de ejemplo: No tiene estado y puede ser invocado local o remótamente:

Test a realizar:

Archivo pom.xml:

Está autocomentado.

Conclusiones

Por desgracia a veces cuando sale una nueva versión al mercado de algún elemento (en este caso Java 6) puede aparecer algún problema el cual requiera realizar acciones adicionales para su funcionamiento, en este caso modificar los archivos de configuración y parámetros de ejecución de la JVM.

Un saludo.
Carlos García. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

Dejar respuesta

Please enter your comment!
Please enter your name here