venerdì 3 febbraio 2012

Java connessione via datasource con JBOSS

Per ottenere la connessione via Java con una webapp si devono effettuare 4 operazioni:
1) Definire un datasource dentro JBOSS;
2) Definire il nodo resource-ref nel web.xml;
3) Definire il file jboss-web.xml dentro la directory WEB-INF;
4) Effettuare la lookup al datasource

Di seguito vediamo i 4 passi in pratica, avendo come AS JBOSS 5.1 e come database sottostante MySql 5.1.

Passo 1 

Il datasource XXXXX-ds.xml

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>jdbc/personaDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/gestore</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>


Passo 2

Nel web.xml abbiamo :

 <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/personaDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>


Passo 3

Il file jboss-web.xml

<jboss-web>
  <context-root>GestorePersonaWeb</context-root>
  <resource-ref>
      <description>database connection</description>
      <res-ref-name>jdbc/personaDS</res-ref-name>
      <jndi-name>java:jdbc/personaDS</jndi-name>
      </resource-ref>
</jboss-web> 





Passo 4


Per ottenere la reference al datasource si utilizzano le seguenti istruzioni:
.......
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/personaDS");
.....
 

Nessun commento:

Posta un commento