martes, 6 de mayo de 2014

Creación de Datasources en JBoss EAP 6

Anteriormente, en versiones de JBoss 5.x y previas, el datasource se generaba con un archivo -ds.xml en el directorio de despliegue, donde se contenían los datasources. A partir de la version 6.x, la generación de los datasources se hace de manera distinta (debido en parte a que se puede arrancar el servidor en modo standalone y domain).

Para este ejemplo, usaremos una conexión de base de datos mysql, con el driver mysql-connector-java-5.1.30-bin.jar.

Al generar el datasource, se requieren de dos pasos:
1.- Instalar el driver en JBoss
2.- Generar el Datasource.

Instalar el driver en JBoss

Primero, hay que añadir el driver para que JBoss lo reconozca. Existen dos maneras de hacer esto, una es desplegar el jar como aplicación y la otra es añadirlo como modulo del core de JBoss.

Si lo añadimos como modulo del core de JBoss, tendremos la ventaja de que el classloader de JBoss serà lo primero que cargue, será visible para cuando el servidor se arranque en modo domain y standalone y seá utilizado bajo demanda de las aplicaciones, pero instalarlo es un poco mas complicado.

Si lo añadimos como aplicación es mucho más fácil y rápido instalarlo, pero solo será visible por las aplicaciones instaladas en el mismo servidor donde se está ejecutando el jar.

Instalando el driver como módulo core de JBoss.
  • Nos ubicamos en la ruta $JBOSS_HOME\\modules\system\layers\base\com\
  • Allí creamos los directorios mysql\main
  • Copiamos el jar  mysql-connector-java-5.1.30-bin.jar en la ubicación $JBOSS_HOME\modules\system\layers\base\com\mysql\main
  • Creamos un archivo module.xml, donde indicaremos el nombre del módulo, el jar y sus dependencias. Este archivo contendrá el siguiente código:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">

    <properties>
        <property name="jboss.api" value="unsupported"/>
    </properties>

    <resources>
        <resource-root path="mysql-connector-java-5.1.30-bin.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>


Podemos observar que en la propiedad module le ponemos el nombre com.mysql, que es donde hemos ubicado nuestro driver en el directorio modules de JBoss.
En resource-root-path, va el nombre del driver.
Y en dependencies, las dependencias que sean necesarias.

  • En los archivos de configuración de standalone.xml y/o domain.xml, debemos agregar el módulo como driver, con el código que se muestra a continuación:
<drivers>
     <driver name="h2" module="com.h2database.h2">
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
     </driver>
     <driver name="mysql" module="com.mysql">
        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
     </driver>
</drivers>


Con esto, ya quedará instalado el jar como módulo del core de JBoss y el driver visible para el modo domain y/o standalone.

Creación de datasources.

Una vez que tenemos el driver de mysql como módulo del core de JBoss, accegdemos a la consola de adminsitración de JBoss ingresando en http://localhost:8080 e introducimos el usuario y password.

Entramos en profiles y damos a add.


Una vez que damos add, el editor guiado nos dara 3 pasos para configurar el datasource:

1. Nombrar el datasource:


2. Elegir el driver. Este será el que hemos configurado como modulo del core de JBoss.


Elegimos myssql

3.- Configurar los parametros de conexion,


Y con esto tenemos una configuración básica de datasources

Una vez configurado, debemos habilitarla seleccionando nuestro datasource y dando al boton enable. Nos saldrá una ventana de confirmación:


Esto modificara el archivo standaloneo .xml o domain.xml, dependiendo el modo en el que hayamos arrancado JBoss.

Una vez habilidado el datasource, podremos hacer un test de la conexion, dando a connection y test:


si todo va bien, nos saldrá lo siguiente:



Y con esto ya tenemos la conexion hecha con el datasource listo para ser utilizado por una conexión JNDI



No hay comentarios:

Publicar un comentario