Phanor Coll menu

Datasource en WildFly 8.1.0 "Kenny"

luego de programar unos dias en projectos con PHP(Symfony2 & ZF2), decidi regresar a lo mio y trabajar un poco con Jboss Forge 2, AngularJs, Errai y Wildfly 8.1, algo que tenia en la lista de hacer.

Dentro de las configuraciones basicas que me gusta tener en mi ambiente de desarrollo y en produccion es tener un Datasource para asi liberarme de tener que configurar dependencias de la base de datos dentro de la aplicacion, como tambien credenciales de acceso, etc.

En este primer articulo mostrare como configurar una fuente de datos (datasource) con Mysql.

Primero debemos descargar el conector jdbc para mysql, esto lo podemos hacer desde el siguiente enlace

Descargar Conector Mysql

luego de descargar el conector, nos dirigimos a la siguiente direccion

cd wildfly-8.1.0.Final/modules/system/layers/base  

y creamos la carpeta para la configuracion del modulo Mysql

mkdir -p mysql/mysql-connector-java/main  

Al crear la carpeta copiamos el archivo mysql-driver mysql-connector-java-5.1.32.jar aqui.

Creamos el archivo module.xml con el siguiente contenido

<?xml version="1.0" encoding="UTF-8"?>  
<module xmlns="urn:jboss:module:1.1"  
        name="mysql.mysql-connector-java">
    <resources>
        <resource-root path="mysql-connector-java-5.1.32.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

luego de tener el modul creado junto con el .jar del conector, debemos configurar el servidor para que levante la fuente de datos.

Editamos el archivo de configuracion standalone.xml

cd wildfly-8.1.0.Final/standalone/configuration  

y ubicamos la seccion de las fuentes de datos

<subsystem xmlns="urn:jboss:domain:datasources:2.0">  

agregamos otro nodo datasource

<datasource  
    jndi-name="java:jboss/datasources/DesarrolloDS" 
    pool-name="DesarrolloDS" 
    enabled="true" 
    use-java-context="true">
    <connection-url>
    jdbc:mysql://localhost:3306/nombre_db?useUnicode=yes&amp;characterEncoding=UTF-8
    </connection-url>
    <driver>com.mysql</driver>
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
    <pool>
      <min-pool-size>10</min-pool-size>
      <max-pool-size>100</max-pool-size>
      <prefill>true</prefill>
    </pool>
    <security>
       <user-name>usuario_db</user-name>
       <password>password_db</password>
    </security>
    <statement>
      <prepared-statement-cache-size>32</prepared-statement-cache-size>
      <share-prepared-statements>true</share-prepared-statements>
    </statement>
 </datasource>

y agregamos el nodo para el driver Mysql usado en la fuente de datos DesarrolloDS

<driver name="com.mysql" module="mysql.mysql-connector-java">  
      <xa-datasource-class>
      com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
      </xa-datasource-class>
</driver>  

recuerda que el nodo datasource y driver van dentro del nodo raiz datasources

La base de datos debe estar codificada con UTF-8-bin (esto se especifico en connection-url)

luego solo basta con reiniciar el servidor y ahora tendras disponible el datasource DesarrolloDS para ser usado desde tus aplicaciones sin preocuparte por archivos .jar o agregarlos en tu configuracion de MAVEN.

En el proximo articulo mostrare como configurar Jboss Forge 2 para crear una aplicacion usando ANgularJs como front end y Hibernate conectado a nuestra datasource DesarrolloDS