Desplegar en Jboss 7 desde Maven

Desplegar un proyecto war en JBoss 7 con Maven

Vamos a usar en este ejemplo JBoss 7, por lo tanto en primer lugar descargamos JBoss AS 7.1.1.Final desde aquí.

Una vez descargado configuramos un usuario y contraseña para administrar JBoss 7, para ello se ejecuta jboss-as-7.1.1.Final\bin\add-user.bat o .sh si estamos en Linux y creamos un usuario, por ejemplo: (useradmin456/password456).

JBoss 7 por defecto impide el acceso por ip y únicamente está accesible desde localhost.
Para permitir esto, por ejemplo para la ip 123.123.123.123, habría que configurar en el fichero standalone.xml o standalone-full.xml lo siguiente:

Arrancamos JBoss, voy a desplegar una aplicación que necesita tener habilitadas las colas JMS, por lo tanto lo arranco con la configuración full:

Suponiendo que nuestra ip es 123.123.123.123, entramos a la consola de administración del JBoss http://123.123.123.123:9990/console/ y comprobamos que podemos entrar con el usuario y la contraseña que habíamos creado (useradmin456/password456)

Desplegar en JBoss con Maven

Por no alargar el tutorial, vamos a suponer que ya disponemos de un proyecto Maven web de tipo war. Se puede ver un ejemplo aquí. Doy por hecho que dicho proyecto compila, pasa los test y despliega correctamente en el servidor JBoss, de manera manual, o a través de un entorno de desarrollo como eclipse. Lo que queremos hacer es que antes de la ejecución de los test de integración, se despliegue la aplicación en JBoss, para ello podemos añadir en el pom.xml lo siguiente:

Como se puede ver, hemos configurado el plugin “jboss-as-maven-plugin” dentro de un perfil de Maven, de modo que únicamente se haga deploy cuando el perfil “integracion“, esté activo.

En la configuración introducimos las credenciales necesarias para poder desplegar la aplicación. Como se puede ver, en este ejemplo no nos hemos complicado y las hemos puesto en claro, aunque esto es muy ortodoxo.

Antes de desplegar la aplicación, retiramos el war que ya estuviera desplegado, en la fase clean y desplegamos en la fase “pre-integration-test“, es decir, antes de ejecutar los test de integración.

Para ejecutar todo el ciclo de compilación y desplegar el war, podemos ejecutar lo siguiente:

Como se puede ver, indicamos que esté activo el perfil “integracion” con -P. La aplicación será desplegada en el servidor, sencillo, ¿verdad?.

Eliminar trazas “JBAS011054: Could not find default constructor for class

Si vamos a trabajar con Spring, durante el arranque, es probable que salgan warnings “JBAS011054: Could not find default constructor for class“. Para evitar que se muestren, configuramos en jboss-as-7.1.1.Final\standalone\configuration\ los ficheros standalone.xml o standalone-full.xml para que no muestre dicha traza:

 

Eso es todo. Recordad que los comentarios son moderados, y pueden tardar un tiempo en aparecer.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *