martes, 14 de junio de 2011

Conexión del JBoss EAP 5.0 con una base de datos.

Para que el JBoss se conecte con una Base de Datos se requiere un driver. El driver se obtiene de la pagina web de la base de datos en forma de *.jar. En el caso de MYSQL el driver se encuentra en  mysql-connector-java-5.1.6.jar.
Este conector se debe colocar preferiblemente en la carpeta de las librerías de la aplicación jboss-as/server/desarrollo/lib.  En la ruta \jboss-as\docs\examples\jca  se encuentran varios ejemplos de configuración de conectores a la base de datos. De esta carpeta obtenemos una plantilla llamada mysql-ds.xml (La plantilla mysql-xa-ds se utiliza para transacciones distribuidas o conexiones 2-phase-commit)
La plantilla mysql-ds.xml se copia en la carpeta  \jboss-as\server\jb336\deploy\  para renombrarlo como desarrollo-ds.xml  y configurarlo para nuestro entorno.
En el archivo desarrollo-ds.xml se configura la IP del servidor de datos, el usuario y password de conexión.
    <jndi-name>jb339DS</jndi-name>
    <connection-url>jdbc:mysql://10.10.10.10:3306/jbossdb</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>master</user-name>
    <password>password</password>
En el mismo archivo de configuración se agrega una sentencia para que el JBoss verifique que la conexión este vigente, el JBoss realizará el siguiente query:
    <check-valid-connection-sql>select 3</check-valid-connection-sql>
Las políticas de seguridad de la conexión se configuran en el archivo login-config.xml
  <application-policy name="eAplicacion">
    <authentication>
      <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
        <module-option name = "dsJndiName">java:/jb336DS</module-option>
                    <module-option name = "principalsQuery">SELECT PASSWORD FROM CUSTOMER WHERE USER_ID=?</module-option>
                    <!-- no roles are needed -->
                    <module-option name = "rolesQuery">SELECT null,null FROM CUSTOMER WHERE USER_ID=?</module-option>
      </login-module>
    </authentication>
  </application-policy>
Compartir:

0 comentarios:

Publicar un comentario